Submission #409803

#TimeUsernameProblemLanguageResultExecution timeMemory
409803CSQ31벽 칠하기 (APIO20_paint)C++14
0 / 100
1589 ms204 KiB
#include "paint.h" #include<bits/stdc++.h> using namespace std; #define pb push_back #define fi first #define se second #define sz(a) (int)(a.size()) #define all(a) a.begin(),a.end() #define lb lower_bound #define ub upper_bound #define owo ios_base::sync_with_stdio(0);cin.tie(0); #define MOD (ll)(1e9+7) #define INF (ll)(1e18) #define debug(...) fprintf(stderr, __VA_ARGS__),fflush(stderr) #define time__(d) for(long blockTime = 0; (blockTime == 0 ? (blockTime=clock()) != 0 : false);\ debug("%s time : %.4fs\n", d, (double)(clock() - blockTime) / CLOCKS_PER_SEC)) typedef long long int ll; typedef long double ld; typedef pair<ll,ll> PII; typedef pair<int,int> pii; typedef vector<vector<int>> vii; typedef vector<vector<ll>> VII; ll gcd(ll a,ll b){if(!b)return a;else return gcd(b,a%b);} int minimumInstructions(int n, int m, int k, vector<int>c,vector<int> a, vii b) { vii co(k); for(int i=0;i<m;i++){ for(int x:b[i])co[x].pb(i); } vector<bool>p(n); vector<int>rg(n,-1); deque<int>q1; for(int x:co[c[n-1]]){rg[x] = n-1;q1.pb(x);} if(!q1.empty())p[n-1] = 1; for(int i=n-2;i>=0;i--){ //cout<<"queue"<<'\n'; //for(int x:q1)cout<<x<<" "; //cout<<'\n'; vector<pii>change; for(int x:co[c[i]]){ if(rg[(x+1)%m] != -1){ change.pb({x,rg[(x+1)%m]}); if(rg[(x+1)%m] == n-1 || rg[(x+1)%m] >= i+m-1)p[i] = 1; }else change.pb({x,i}); } for(int x:q1)rg[x] = -1; q1.clear(); for(pii x:change){ rg[x.fi] = x.se; q1.pb(x.fi); } } //for(int i=0;i<n;i++)cout<<p[i]<<" "; //cout<<'\n'; vector<int>lf(n,-1); for(int i=0;i<n;i++){ if(p[i])lf[i] = i; else if(i)lf[i] = lf[i-1]; } int ans = 0; int i = 0; while(i <= n-1){ //cout<<i<<'\n'; if(lf[i] == -1 || lf[i] < i-m)return -1; ans++; i = lf[i]+m; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...