Submission #1183874

#TimeUsernameProblemLanguageResultExecution timeMemory
1183874WH8Ancient Machine (JOI21_ancient_machine)C++20
70 / 100
46 ms6592 KiB
#include "Anna.h" #include <bits/stdc++.h> #define pb push_back using namespace std; void Anna(int n, vector<char> t) { vector<int> s; for(int i=0;i<n;i++){ if(t[i]=='X'){ s.pb(0); } else if (t[i]=='Y'){ s.pb(1); } else{ s.pb(2); } } int fx=n, lz=-1; vector<int> px(n,-1), pz(n,-1), nz(n,n); for(int i=0;i<n;i++){ if(i!=0)px[i]=px[i-1]; if(s[i]==0){fx=min(fx,i);px[i]=i;} if(i!=0)pz[i]=pz[i-1]; if(s[i]==2){pz[i]=i;} } for(int i=n-1;i>=0;i--){ if(i!=n-1)nz[i]=nz[i+1]; if(s[i]==2){nz[i]=i;lz=max(lz,i);} } vector<int> out(n,0); if(fx<lz){ out[fx]=1; for(int i=fx+1;i<=lz;i++){ if(s[i]==2)out[i]=1; } } for(int i=0;i<n;i++)Send(out[i]); }
#include "Bruno.h" #include <bits/stdc++.h> using namespace std; #define pb push_back bool out[100005]; int N; void rem(int x){ if(0<=x and x<N and !out[x]){ out[x]=true; Remove(x); } } void Bruno(int n, int l, vector<int> a) { N=n; vector<int> pos; for(int i=0;i<(int)a.size();i++){ if(a[i])pos.pb(i); } for(int i=0;i<(pos.empty()?n:pos[0]);i++)rem(i); for(int i=(pos.empty()?0:pos.back()+1);i<n;i++)rem(i); for(int i=1;i<(int)pos.size();i++){ for(int j=pos[i]-1;j>pos[i-1];j--){ rem(j); } rem(pos[i]); } rem((pos.empty()?0:pos[0])); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...