제출 #1314023

#제출 시각아이디문제언어결과실행 시간메모리
1314023tsengang벽 (IOI14_wall)C++20
0 / 100
117 ms17132 KiB
#include <bits/stdc++.h> using namespace std; #define ll int #define ff first #define ss second #define pb push_back #define all(x) (x).begin(), (x).end() #define ertunt return vector<ll>f(200005),inv(200005); ll mod = 998244353; ll modpow(ll a, ll b){ ll res = 1; while(b){ if(b&1){ res*=a; res%=mod; } a*=a; a%=mod; b >>= 1; } ertunt res; } ll nCk(ll n, ll k){ if(k < 0 or k > n)ertunt 0; ertunt f[n]*inv[k]%mod*inv[n-k]%mod; } void buildWall(int n, int k, int op[], int l[], int r[], int h[], int H[]){ vector<array<ll,3>>add; vector<array<ll,3>>rem; for(ll i = 0; i < k; i++){ if(op[i] == 1){ add.pb({h[i],l[i],r[i]}); } else{ rem.pb({h[i],l[i],r[i]}); } } sort(all(add)),[&](ll i,ll j){ ertunt add[i][0] >= add[j][0]; }; sort(all(rem)); vector<ll>brov(n+5,-1); for(ll i = 0; i < add.size(); i++){ for(ll j = add[i][1]; j <= add[i][2]; j++){ if(brov[j] == -1){ H[j] = add[i][0]; brov[j] = add[i][2]; } else{ j = brov[j]; } } } brov.resize(n+4,-1); for(ll i = 0; i < rem.size(); i++){ for(ll j = rem[i][1]; j <= rem[i][2]; j++){ if(brov[j] == -1){ brov[j] = rem[i][2]; H[j] = min(H[j],rem[i][0]); } else { j = brov[j]; } } } } // int main() { // ios_base::sync_with_stdio(false);cin.tie(NULL); // ll t; // cin >> t; // while(t--){ // } // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...