結果

問題 No.2160 みたりのDominator
ユーザー hotman78hotman78
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

#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;
}
0