結果
| 問題 | No.2160 みたりのDominator |
| コンテスト | |
| ユーザー |
hotman78
|
| 提出日時 | 2022-12-07 15:09:52 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.89.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,499 bytes |
| 記録 | |
| コンパイル時間 | 1,923 ms |
| コンパイル使用メモリ | 196,720 KB |
| 最終ジャッジ日時 | 2025-02-09 06:13:45 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 RE * 1 |
| other | AC * 36 RE * 57 |
ソースコード
#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(min(1LL<<30,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;
}
hotman78