結果
問題 | No.466 ジオラマ |
ユーザー |
![]() |
提出日時 | 2025-06-28 11:48:19 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,890 bytes |
コンパイル時間 | 1,672 ms |
コンパイル使用メモリ | 163,832 KB |
実行使用メモリ | 7,976 KB |
最終ジャッジ日時 | 2025-06-28 11:48:27 |
合計ジャッジ時間 | 6,897 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 75 WA * 8 |
ソースコード
#include<bits/stdc++.h> using namespace std; int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int main(){ // freopen("hometown.in","r",stdin); // freopen("hometown.out","w",stdout); int a,b,c,d; cin>>a>>b>>c>>d; if(a<c||b<c){ cout<<"-1\n"; return 0; } if(a==c||b==c){ if(a==c&&b==c){ if(d<a){ cout<<"-1\n"; return 0; } else { cout<<a+1<<" "<<a<<"\n"; for(int i=0;i<a-1;i++){ cout<<i<<" "<<i+1<<"\n"; } cout<<a-1<<" "<<0<<"\n"; } } else if(a==c){ if(d<b-1){ cout<<"-1\n"; return 0; } cout<<b<<" "<<b-1<<"\n"; for(int i=2;i<=a;i++){ cout<<"0 "<<i<<"\n"; } cout<<"1 0\n"; for(int i=2;i<=b-a;i++){ cout<<"1 "<<i+a-1<<"\n"; } } else { if(d<a-1){ cout<<"-1\n"; return 0; } cout<<a<<" "<<a-1<<"\n"; for(int i=2;i<=b;i++){ cout<<"1 "<<i<<"\n"; } cout<<"0 1\n"; for(int i=2;i<=a-b;i++){ cout<<"0 "<<i+b-1<<"\n"; } } } else { if(c==0){ if(d<a+b-2){ cout<<"-1\n"; return 0; } cout<<a+b<<" "<<a+b-2<<"\n"; int nw=2; if(a>1){ cout<<"0 "<<nw<<"\n"; for(int i=2;i<a;i++){ cout<<i<<" "<<i+1<<"\n"; } nw=a+1; } if(b>1){ cout<<"1 "<<nw<<"\n"; for(int i=2;i<b;i++){ cout<<nw+i-2<<' '<<nw+i-1<<'\n'; } } return 0; } if(d<a+b-c-1){ cout<<"-1\n"; return 0; } cout<<a+b-c<<" "<<a+b-c-1<<"\n"; for(int i=2;i<=c;i++){ cout<<i<<" "<<i+1<<"\n"; } if(a-c==1)cout<<"0 2\n"; else { cout<<0<<" "<<c+2<<'\n'; for(int i=c+2;i<a;i++)cout<<i<<' '<<i+1<<"\n"; cout<<a<<" 2\n"; } if(b-c==1)cout<<"1 2\n"; else { cout<<"1 "<<a+1<<"\n"; for(int i=a+1;i<a+b-c-1;i++)cout<<i<<" "<<i+1<<"\n"; cout<<a+b-c-1<<" 2\n"; } } return 0; }