夢追い人

"It takes a dreamer to make a dream come true."―Vincent Willem van Gogh

直進四問

久々の精進です。

慣れようと思って前から使っていたサイトの主観難易度1をやってたんですが、みんなやけに簡単www
だめだこりゃ(;・∀・)はは・・・



難しいもの解けなくちゃ意味ないですよね〜・・・

3325

数の平均を求めるだけ。条件が最高と最低の値をそれぞれひとつだけ無視して考えるとのこと。
ほんとにやるだけ。

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
	int n,s;
	while (scanf("%d",&n)&&n!=0) {
		vector<int> log;
		int sum=0,num=0;
		for (int i=0; i<n; i++) {
			scanf("%d",&s);
			sum+=s;
			num++;
			log.push_back(s);
		}
		sort(log.begin(), log.end());
		sum-=log[0]+log[log.size()-1];
		num-=2;
		int res=sum/num;
		printf("%d\n",res);
	}
}

3438

ハフマン符号だっけ?をする。
久々のcin+string登場。文字列関連に関してはとっても直感的でこの癖は直せない(笑)

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
	int t; cin>>t;
	for (int ix=0; ix<t; ix++) {
		string in; cin>>in;
		char tm=in[0];
		int cnt=1;
		string ans="", tmp;
		for (int i=1; i<in.length(); i++) {
			if (tm==in[i]) {
				cnt++;
				continue;
			}
			stringstream ss; ss<<cnt;
			tmp=ss.str();
			ans+=tmp+tm;
			tm=in[i]; cnt=1;
		}
		stringstream ss; ss<<cnt;
		tmp=ss.str();
		ans+=tmp+tm;
		cout<<ans<<endl;
	}
}

3302

ニ個目の文字列とそれを反転したもののどちらかが一個目の文字列のサブ文字列かどうか調べる。
やるだけ。

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
int main() {
	int T; cin>>T;
	string s1,s2,rs2;
	for (int ix=0; ix<T; ix++) {
		cin>>s1>>s2;
		rs2=s2; reverse(rs2.begin(), rs2.end());
		bool flag=false;
		int t=0;
		for (int i=0; i<s1.length(); i++) if (s1[i]==s2[t]) t++;
		if (t==s2.length()) flag=true;
		t=0;
		for (int i=0; i<s1.length(); i++) if (s1[i]==rs2[t]) t++;
		if (flag||t==rs2.length()) printf("YES\n");
		else printf("NO\n");
	}
}

3224

3セット先取のテニスリーグでセット数で表したリーグ表が与えられるから、一位でもっとも若い番号を答える。
3を数えるだけ。

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
int main() {
	int T; cin>>T;
	string s1,s2,rs2;
	for (int ix=0; ix<T; ix++) {
		cin>>s1>>s2;
		rs2=s2; reverse(rs2.begin(), rs2.end());
		bool flag=false;
		int t=0;
		for (int i=0; i<s1.length(); i++) if (s1[i]==s2[t]) t++;
		if (t==s2.length()) flag=true;
		t=0;
		for (int i=0; i<s1.length(); i++) if (s1[i]==rs2[t]) t++;
		if (flag||t==rs2.length()) printf("YES\n");
		else printf("NO\n");
	}
}

だめですね。怠惰ですね。。。

でもなんとなく以前の感じを思い出してきました。



今度のコンブも頑張りたいと思います。