結果
| 問題 | 
                            No.745 letinopia raoha
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2018-11-17 01:51:08 | 
| 言語 | C++14  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 2 ms / 2,000 ms | 
| コード長 | 1,395 bytes | 
| コンパイル時間 | 750 ms | 
| コンパイル使用メモリ | 96,100 KB | 
| 実行使用メモリ | 5,248 KB | 
| 最終ジャッジ日時 | 2024-12-24 14:26:37 | 
| 合計ジャッジ時間 | 1,252 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 8 | 
ソースコード
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cctype>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <set>
#include <map>
#include <list>
#include <stdio.h>
#include <string.h>
#include <cstdlib>
#include <math.h>
#include <bitset>
#include <iterator>	
#include <iomanip>
#include <sstream>
#include <numeric>
#include <cassert>
#define INF 2000000000000000
#define MOD 1000000007
#define sym cout<<"---------"<<endl;
#define ll long long
#define mk make_pair
#define en endl
#define RE return 0
#define int ll
#define P pair<int,int>
using namespace std;
int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
int gcd(int a,int b){if(a%b==0){return b;}else return gcd(b,a%b);}
int lcm(int a,int b){if(a==0){return b;} return a/gcd(a,b)*b;}
signed main(){
	int a,b,c,d; cin>>a>>b>>c>>d;
	if(d*100>=1000){
		cout<<"Impossible"<<en;
		RE;
	}
	
	int ans=0;
	int times=1;
	for(int i=1; i<=10; i++){
		if(b>=i*100){ 
			ans+=50*times*100;
			times*=2;
		}else{
			int l=b-100*(i-1);
			ans+=50*times*l;
			if(a>=(100-l)){ 
				ans+=times*100*(100-l);
				a-=100-l;
			}
			else ans+=times*100*a;
			times*=2;
			break;
		}
	}
	
	int aa=0;
	for(int i=1; i<=10; i++){
		aa=ans;
		if(a>=i*100){ 
			ans+=100*times*100;
			times*=2;
		}else{
			ans+=100*times*(a-100*(i-1));
			break;
		}
	}
	cout<<"Possible"<<endl<<ans<<en;
}