結果
問題 | No.466 ジオラマ |
ユーザー |
|
提出日時 | 2022-09-07 23:00:36 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,676 bytes |
コンパイル時間 | 1,995 ms |
コンパイル使用メモリ | 204,860 KB |
最終ジャッジ日時 | 2025-02-07 03:24:24 |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 74 WA * 9 |
ソースコード
#include<bits/stdc++.h>using namespace std;#pragma GCC optimize("O3")#define rep(i,n) for(ll i=0;i<n;i++)#define repl(i,l,r) for(ll i=(l);i<(r);i++)#define per(i,n) for(ll i=(n)-1;i>=0;i--)#define perl(i,r,l) for(ll i=r-1;i>=l;i--)#define fi first#define se second#define ins insert#define pqueue(x) priority_queue<x,vector<x>,greater<x>>#define all(x) (x).begin(),(x).end()#define CST(x) cout<<fixed<<setprecision(x)#define rev(x) reverse(x);using ll=long long;using vl=vector<ll>;using vvl=vector<vector<ll>>;using pl=pair<ll,ll>;using vpl=vector<pl>;using vvpl=vector<vpl>;const ll MOD=1000000007;const ll MOD9=998244353;const int inf=1e9+10;const ll INF=4e18;const ll dy[9]={1,0,-1,0,1,1,-1,-1,0};const ll dx[9]={0,1,0,-1,1,-1,1,-1,0};template <typename T> inline bool chmax(T &a, T b) {return ((a < b) ? (a = b, true) : (false));}template <typename T> inline bool chmin(T &a, T b) {return ((a > b) ? (a = b, true) : (false));}int main(){ll a,b,c,d;cin >> a >> b >> c >> d;vl x,y;if(a==b&&b==c){x.emplace_back(0);y.emplace_back(1);x.emplace_back(1);y.emplace_back(0);rep(i,c-2){x.emplace_back(i+1);y.emplace_back(i+2);}ll v=y.back()+1;if(x.size()<=d&&c>=2){cout << v << " " << x.size() << endl;rep(i,x.size())cout << x[i] <<" " << y[i] << endl;}else{cout << -1 << endl;}}else{ll pos=0;if(a<b){pos=1;swap(a,b);}ll v=2;if(a>1){x.emplace_back(pos);y.emplace_back(v);}rep(i,a-2){x.emplace_back(v);y.emplace_back(v+1);v++;}pos^=1;if(c==b){rep(i,x.size()){if(x[i]==v-(c-1))x[i]=pos;if(y[i]==v-(c-1))y[i]=pos;}}else if(c==0){v++;if(b>1){x.emplace_back(pos);y.emplace_back(v);}rep(_,b-2){x.emplace_back(v+1);y.emplace_back(v);v++;}}else{ll f=v-(c-1);if(b-c==1){x.emplace_back(pos);y.emplace_back(f);}else{v++;x.emplace_back(pos);y.emplace_back(v);rep(i,b-c-2){x.emplace_back(v);y.emplace_back(v+1);v++;}x.emplace_back(v);y.emplace_back(f);}}if(x.size()<=d){vl pls={0,1};rep(i,x.size())pls.emplace_back(x[i]),pls.emplace_back(y[i]);sort(all(pls));pls.erase(unique(all(pls)),pls.end());cout << pls.size() <<" " << x.size() << endl;rep(i,x.size()){ll f=lower_bound(all(pls),x[i])-pls.begin();ll g=lower_bound(all(pls),y[i])-pls.begin();cout << f <<" " << g << endl;}}else cout << -1 << endl;;}}