2489 Palindromic Number
解法
簡単な問題なので全部生成して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
解法
()の閉じ対応を数えていくだけの簡単な問題です。
#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");
}
最終更新:2013年03月20日 15:25