思った以上に手間取ったので他の人のためにメモ。
main.cppとテストケース用のinput.txtを同じ位置に置く。XcodeはRunしたときの実行ディレクトリがmain.cppとは異なる位置で実行されるので、http://d.hatena.ne.jp/nakamura001/20120729/1343520758 のようにXcodeで設定を変更するとinput.txtが読めるようになり、cinから取れるようになる。(Visual Studio for Macを使った方が良かったのかも)
例えばこの問題 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0001 で、コードを書いたらRunしてローカルでSample Input, Sample Outputの対応が取れていることを確認する。
#include <iostream> #include <fstream> #include <vector> #include <algorithm> using namespace std; int main(int argc, const char * argv[]) { // input from txt std::ifstream in("input.txt"); std::cin.rdbuf(in.rdbuf()); vector<int> heights(10); for (int i=0; i<10; i++){ cin >> heights[i]; } sort(heights.begin(), heights.end(), greater<int>()); for (int i=0; i<3; i++){ cout << heights[i] << endl; } return 0; }
提出するときは、// inut from textからの3行を削除して提出すると通る。通った例 http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=2314267#1
C++で提出している人たちは速度のためにscanfで読んでいる人が多いが、cinで大抵は十分とchokudaiさんが書いていたのでこのまま進めよう。これでC++で書く環境ができたので、やりたかった「PythonでTime Limit Error」になる問題をC++で書いたら通るか試してみる。