結果
問題 | No.2160 みたりのDominator |
ユーザー |
![]() |
提出日時 | 2022-12-07 15:07:59 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,486 bytes |
コンパイル時間 | 1,929 ms |
コンパイル使用メモリ | 198,372 KB |
最終ジャッジ日時 | 2025-02-09 06:13:10 |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 RE * 1 |
other | AC * 36 RE * 30 TLE * 27 |
ソースコード
#include<bits/stdc++.h> using namespace std; #define rep(i,n) for(int i=0;i<int(n);++i) using lint=long long; int main(){ array<lint,3>n; lint m; rep(i,3)cin>>n[i]; cin>>m; vector<lint>s(m),t(m),a(m),b(m),u(m),v(m); lint n1=n[0],n2=n[0]+n[1],n3=n[0]+n[1]+n[2]; assert(lint(n[0]+1)*(n[1]+1)*(n[2]+1)*(m+1)<1e8); rep(i,m){ cin>>u[i]>>v[i]; u[i]--;v[i]--; if(u[i]>v[i])swap(u[i],v[i]); if(u[i]==n3){ cout<<0<<endl; return 0; } if(u[i]<n1){ a[i]=u[i]+1; s[i]=0; }else if(u[i]<n2){ a[i]=u[i]-n1+1; s[i]=1; }else{ a[i]=u[i]-n2+1; s[i]=2; } if(v[i]==n3){ t[i]=s[i]; b[i]=0; }else if(v[i]==n3+1){ t[i]=s[i]; b[i]=n[s[i]]+1; }else if(v[i]<n1){ t[i]=0; b[i]=v[i]+1; }else if(v[i]<n2){ t[i]=1; b[i]=v[i]-n1+1; }else{ t[i]=2; b[i]=v[i]-n2+1; } } rep(i,3)n[i]++; //rep(i,m)cerr<<s[i]<<" "<<t[i]<<" "<<a[i]<<" "<<b[i]<<endl; lint ans=0; rep(p,n[0])rep(q,n[1])rep(r,n[2]){ vector<lint>tmp={p,q,r}; bool ok=1; rep(i,m){ if((tmp[s[i]]<a[i])^(tmp[t[i]]<b[i])){ ok=0; break; } } if(ok)ans++; } cout<<ans<<endl; }