「aoj2481~2490」の編集履歴(バックアップ)一覧はこちら
「aoj2481~2490」(2013/03/20 (水) 15:25:54) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*2489 Palindromic Number
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2489
与えれた整数nに最も近い回文数を答えよという問題。
複数ある場合低い方を答えとせよ。
解法
簡単な問題なので全部生成してstd::setから探すだけです。
#include<stdio.h>
#include<set>
int main(){
std::set<int> memo;
std::set<int>::iterator it;
memo.insert(0);
memo.insert(10001);
for(int i=1;i<=9;i++){
memo.insert(i);
memo.insert(i*10+i);
for(int j=0;j<=9;j++){
memo.insert(i*100+j*10+i);
memo.insert(i*1000+j*100+j*10+i);
}
}
int n;
scanf("%d",&n);
it=memo.lower_bound(n);
int ans1=(*it);
it--;
int ans2=(*it);
printf("%d\n",n-ans2>ans1-n?ans1:ans2);
}
*2489 Palindromic Number
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2489
与えれた整数nに最も近い回文数を答えよという問題。
複数ある場合低い方を答えとせよ。
解法
簡単な問題なので全部生成してstd::setから探すだけです。
#include<stdio.h>
#include<set>
int main(){
std::set<int> memo;
std::set<int>::iterator it;
memo.insert(0);
memo.insert(10001);
for(int i=1;i<=9;i++){
memo.insert(i);
memo.insert(i*10+i);
for(int j=0;j<=9;j++){
memo.insert(i*100+j*10+i);
memo.insert(i*1000+j*100+j*10+i);
}
}
int n;
scanf("%d",&n);
it=memo.lower_bound(n);
int ans1=(*it);
it--;
int ans2=(*it);
printf("%d\n",n-ans2>ans1-n?ans1:ans2);
}
*2490 Parentheses
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2490
()がきちんと対応してるか判断する問題。
解法
()の閉じ対応を数えていくだけの簡単な問題です。
#include<stdio.h>
int main(){
int count=0;
int n,m;
char s[3],c1;
bool ok=true;
scanf("%d",&n);
while(n--){
scanf("%s %d",&s,&m);
c1=s[0];
if(c1=='('){
count+=m;
}else if(c1==')'){
if(count<m){
ok=false;
}else{
count-=m;
}
}
}
printf("%s\n",ok==true&&count==0?"YES":"NO");
}