Submission #751619

#TimeUsernameProblemLanguageResultExecution timeMemory
751619Username4132Ili (COI17_ili)C++14
49 / 100
4070 ms12756 KiB
#include<iostream> #include<bitset> using namespace std; #define forn(i, n) for(int i=0; i<(int)n; ++i) const int MAXN=10010; int n, m; string info, ans; bitset<MAXN> arr[MAXN], one("1"), nuli; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> m >> info; ans.assign(m, '?'); forn(i, m){ char c1, c2; int a1, a2; cin >> c1 >> a1 >> c2 >> a2; --a1, --a2; bitset<MAXN> bi1 = c1=='x'? (one<<a1) : arr[a1]; bitset<MAXN> bi2 = c2=='x'? (one<<a2) : arr[a2]; arr[i]=bi1|bi2; } forn(i, m) if(info[i]=='0') nuli|=arr[i]; nuli=~nuli; forn(i, m){ arr[i]&=nuli; if(arr[i].count()==0) ans[i]='0'; } forn(i, m) if(ans[i]!='0'){ bool put=false; forn(j, m) if(info[j]=='1') put|=(arr[j] & arr[i])==arr[j]; if(put) ans[i]='1'; } cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...