アットウィキロゴ

全体公開 > 合同練習会 > 20130323

今日 -
昨日 -
合計 -

このページ/子ページでは, 第二回合同練習会 で扱われた問題に対する, @Mi_Sawa の解答を載せています.

全てが正しいとは限りません. コメントやツッコミ等あれば, twitterか, 各ページの一番下のコメント欄でお願いします.



各ページでは省くが, 次のようなコードを前提とし, solve() 関数を実装した. (コンテスト中は, 最初に全て書くことはせず, 必要に応じて追加する.)

  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <cmath>
  5. #include <cstdlib>
  6. #include <set>
  7. #include <map>
  8. #include <queue>
  9. #include <stack>
  10. #include <complex>
  11. #include <iomanip>
  12.  
  13. // 今回はforeachでしか用いていない.
  14. #define let(v, x) typeof(x) v = (x)
  15. // b <= i < n なる i についてループする.
  16. #define REP(i,b,n) for(int i=(int)(b);i<(int)(n);++i)
  17. // 0 <= i < n なる i についてループする.
  18. #define rep(i,n) REP(i,0,n)
  19. #define sz(v) ((int)v.size())
  20. // 0 <= i < v.size() なる i についてループする.
  21. #define repsz(i, v) rep(i, sz(v))
  22. // v.begin() から v.end() までイテレータを回す.
  23. #define foreach(i,v) for(let(i, (v).begin());i!=(v).end();i++)
  24. #define pb push_back
  25. #define fst first
  26. #define snd second
  27. #define all(x) (x).begin(),(x).end()
  28. static const int INF = 1<<25;
  29. static const double EPS = 1e-5;
  30. using namespace std;
  31. typedef long long ll;
  32. typedef vector<int> vi;
  33. typedef vector<vi> vvi;
  34. // a を a と b の小さい方で更新する.
  35. template<class T> T mineq(T &a, const T &b){ return a = min(a, b); }
  36. // a を a と b の大きい方で更新する.
  37. template<class T> T maxeq(T &a, const T &b){ return a = max(a, b); }
  38.  
  39. // 各ケースについて, 解く.
  40. // ケースの終わりでは, false を返す.
  41. // 具体的には, 例えば, 入力の終わりに 0 が入るとかなら,
  42. // int n; cin >> n;
  43. // if(n == 0) return false;
  44. // // 問題を解く
  45. // return true;
  46. // のようなコードが入る.
  47. bool solve(){
  48.  
  49. return true;
  50. }
  51. int main(){
  52. // 出力が実数な場合は, 桁数を増やす為,
  53. // cout.setf(ios::fixed); cout.precision(10);
  54. while(solve());
  55. // 最初にケース数が来る場合は,
  56. // int n;
  57. // cin >> n;
  58. // rep(i, n) solve();
  59. return 0;
  60. }

編集


最終更新:2013年03月29日 19:14