問題原文の図(7セグメントディスプレイ)のようにマッチで数字を作ることができる.
$N$ 本のマッチがあるとき,何桁の整数を作っても良いので,作れる最大の整数を求める問題.
マッチは使い切る必要はない.
桁数が大きければ必ず大きいので,桁数を増やすことが第一.
よって,基本的には,単独で最も使用マッチの本数が小さい $1$ を作り続ければ良い.
$N$ が奇数の場合は,$1$ 本余るが,$3$ 本のマッチで $7$ が作れるので,最も上の桁を $1$ つ,$7$ に変更してあげる.
#include<bits/stdc++.h>
using namespace std;
#define REP(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)
#define mygc(c) (c)=getchar_unlocked()
#define mypc(c) putchar_unlocked(c)
void reader(int *x){int k,m=0;*x=0;for(;;){mygc(k);if(k=='-'){m=1;break;}if('0'<=k&&k<='9'){*x=k-'0';break;}}for(;;){mygc(k);if(k<'0'||k>'9')break;*x=(*x)*10+k-'0';}if(m)(*x)=-(*x);}
int main(){
int N;
reader(&N);
if(N%2) mypc('7'), N-=3;
while(N>=2) N-=2, mypc('1');
mypc('\n');
return 0;
}
Current time: 2024年04月19日07時52分29秒
Last modified: 2015年01月28日23時52分55秒 (by laycrs)
Tags: Competitive_Programming yukicoder
トップページに戻る
Logged in as: unknown user (not login)