問題
http://codeforces.com/contest/701/problem/A
n枚の数が書かれたカードがある。
n/2人のプレイヤーが2枚ずつとる。
各プレイヤーがもつカードの和が等しくなるにはどのように取ればよいか。
2 <= n <= 100
1 <= ai(カードに書いてある数) <= 100
考察
1. Div2 Aなのでソートして終わり的なやつでしょう
2. ガウスの幼少期のアレみたいな感じかな?
3. 考えると、ソートして最も小さい数と最も大きい数、その次に小さい数とその次に大きい数を選んでいけばよい
実装
http://codeforces.com/contest/701/submission/19328636
int N; vector<pair<int, int> > cards; //----------------------------------------------------------------- int main() { scanf("%d", &N); rep(i, 0, N) { int c; scanf("%d", &c); cards.push_back(make_pair(c, i + 1)); } sort(cards.begin(), cards.end()); rep(i, 0, N / 2) { int j = N - 1 - i; printf("%d %d\n", cards[i].second, cards[j].second); } }