※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

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");
}