JOI2006予選 問題1@C++(簡潔になったよ!)(-58)
同じ問題をPerlで解いたとき、左辺値を三項演算子で分岐する方法を考えたけど、C++なら左辺値用に参照型(int&)が使えるから、同じ事ができるじゃん!
ということで書き直す。
#include <cstdio> #include <algorithm> #include <vector> using namespace std; int main(int argc,char* argv[]) { int n; scanf("%d\n",&n); int sum_a=0; int sum_b=0; for(int i=0;i<n;i++) { int a,b; scanf("%d %d\n",&a,&b); (a<b?sum_b:sum_a) += a; (b<a?sum_a:sum_b) += b; } printf("%d %d\n",sum_a,sum_b); return 0; }