#include // cout, endl, cin #include // string, to_string, stoi #include // vector #include // min, max, swap, sort, reverse, lower_bound, upper_bound #include // pair, make_pair #include // tuple, make_tuple #include // int64_t, int*_t #include // printf #include // map #include // queue, priority_queue #include // set #include // stack #include // deque #include // unordered_map #include // unordered_set #include // bitset #include // isupper, islower, isdigit, toupper, tolower #include //fixed,setprecision //#include //INT_MAX //#include //M_PI #include #include // 正規表現 #include #include //#include using namespace std; #define ll long long #define rep(i, n) for (ll i = 0; i < (ll)(n); i++) constexpr int width = 25; // フィールドの幅 constexpr int height = 60; // フィールドの高さ constexpr int max_turn = 1000; // ゲームの最大ターン数 const char choice[3] = {'L', 'R', 'S'}; int masu[25][60]; int masu1[25][60]; int sx = 12; int power=0; int kogeki=1; struct Data { int h; int p; int x; int y; Data(int h, int p, int x, int y) : h(h), p(p), x(x), y(y) {} }; bool compareByValue(const Data& a, const Data& b) { int valueA = a.y - std::abs(sx - a.x) - 1 - a.h; int valueB = b.y - std::abs(sx - b.x) - 1 - b.h; if (valueA != valueB) return valueA > valueB; else return std::abs(sx - a.x) < std::abs(sx - b.x); } int main() { //vectorP(25); //rep(i,25)cin>>P[i]; vector data,data_mae; rep(i,25)data_mae.emplace_back(1000,-1,-1,-1); for (int turn = 1; turn <= max_turn; turn++) { // 入力の受け取り //cerr<<"power"<> n; if (n == -1) return 0; rep(j,60){ rep(i,25){ if(masu[i][j]==1){ masu1[i][j]=0; if(j-1>=0){ masu1[i][j-1]=1; } } } } rep(j,60){ rep(i,25){ masu[i][j]=masu1[i][j]; // if(turn==76)cerr<0&&sho>data[i].y){ sho=data[i].y; z.h=data[i].h; z.x=data[i].x; z.p=data[i].p; z.y=data[i].y; } } } } for (int i = 0; i < n; i++) { int h1, p1, x1; cin >> h1 >> p1 >> x1; //cerr<1&&sho>abs(sx-z.x)&&z.y!=-1&&z.x!=-1&&z.h>0){ min_i=z.x; sho=abs(sx-z.x); } } //if(turn==76)cerr<<__LINE__<<"---"< min_i&&sx>=1&&masu[sx-1][0]==0&&masu[sx-1][1]==0) { r = 0;//L sx--; if(turn==76)cerr<<__LINE__<<"---"<=1&&masu[sx-1][0]==0&&masu[sx-1][1]==0){ r = 0;//L sx--; }else{ r = 1;//R sx++; } /* if (masu[sx][0]==1||masu[sx][1]==1) { if (sx >= 1&&masu[sx-1][0]==0&&masu[sx-1][1]==0) { if(turn==76)cerr<<__LINE__<<"---"<0&&z.y>0) { ichi = min(ichi, z.y); } } } if (ichi != -1&&!data.empty()) { for (auto it = data.begin(); it != data.end(); ++it) { if (ichi == it->y && it->x == sx) { int z=kogeki; if (it->h >z) { it->h -= z; } else{ data.erase(it); } break; } if(it->h<=0)data.erase(it); } } } return 0; }