AtCoder Beginner Contest 031

Submission #1672428

Source codeソースコード

#include<bits/stdc++.h>
#define range(i,a,b) for(int i = (a); i < (b); i++)
#define rep(i,b) for(int i = 0; i < (b); i++)
#define all(a) (a).begin(), (a).end()
#define show(x)  cerr << #x << " = " << (x) << endl;
//const int INF = 1e8;
using namespace std;

int k, n;
set<vector<int>> s;
string v[55], w[55];

void dfs(vector<int> v, int i){
	if(i == k){
		s.emplace(v);
		return;
	}
	rep(j,3){
		v[i] = j + 1;
		dfs(v, i + 1);
	}
}

int main(){
	cin >> k >> n;

	rep(i,n){
		cin >> v[i] >> w[i];
	}

	vector<int> tmp(k);
	dfs(tmp, 0);

	for(auto i : s){
		map<int, string> ma;
		rep(j,n){
			int cur = 0;
			rep(k,v[j].size()){ //数字を表すそえじ
				int p = v[j][k] - '0'; //ごろで言うとどの数字に当たるか
				int len = i[p - 1]; //切り取る文字数

				if(cur + len > w[j].size()) goto END;
				string str = w[j].substr(cur, len); //ごろを切り取る

				if(ma.count(p)){
					if(ma[p] != str){ //矛盾
						goto END;
					}
				}else{
					ma[p] = str;
				}
				cur+=len;
			}
			if(cur != w[j].size()) goto END;
		}
		for(auto j : ma){
			cout << j.second << endl;
		}
		return 0;
END:
		;
	}
}

Submission

Task問題 D - 語呂合わせ
User nameユーザ名 noy
Created time投稿日時
Language言語 C++14 (GCC 5.4.1)
Status状態 AC
Score得点 100
Source lengthソースコード長 1199 Byte
File nameファイル名
Exec time実行時間 27 ms
Memory usageメモリ使用量 2432 KB

Test case

Set

Set name Score得点 / Max score Cases
Sample - sample-01.txt,sample-02.txt,sample-03.txt,sample-04.txt
Subtask1 40 / 40 sample-02.txt,sample-03.txt,sample-04.txt,subtask1-01.txt,subtask1-02.txt,subtask1-03.txt,subtask1-04.txt,subtask1-05.txt,subtask1-06.txt,subtask1-07.txt,subtask1-08.txt,subtask1-09.txt,subtask1-10.txt,subtask1-11.txt,subtask1-12.txt,subtask1-13.txt,subtask1-14.txt,subtask1-15.txt,subtask1-16.txt,subtask1-17.txt,subtask1-18.txt,subtask1-19.txt,subtask1-20.txt
Subtask2 60 / 60 sample-01.txt,sample-02.txt,sample-03.txt,sample-04.txt,subtask1-01.txt,subtask1-02.txt,subtask1-03.txt,subtask1-04.txt,subtask1-05.txt,subtask1-06.txt,subtask1-07.txt,subtask1-08.txt,subtask1-09.txt,subtask1-10.txt,subtask1-11.txt,subtask1-12.txt,subtask1-13.txt,subtask1-14.txt,subtask1-15.txt,subtask1-16.txt,subtask1-17.txt,subtask1-18.txt,subtask1-19.txt,subtask1-20.txt,subtask2-01.txt,subtask2-02.txt,subtask2-03.txt,subtask2-04.txt,subtask2-05.txt,subtask2-06.txt,subtask2-07.txt,subtask2-08.txt,subtask2-09.txt,subtask2-10.txt,subtask2-11.txt,subtask2-12.txt,subtask2-13.txt,subtask2-14.txt,subtask2-15.txt,subtask2-16.txt,subtask2-17.txt,subtask2-18.txt,subtask2-19.txt,subtask2-20.txt

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
sample-01.txt AC 2 ms 256 KB
sample-02.txt AC 1 ms 256 KB
sample-03.txt AC 1 ms 256 KB
sample-04.txt AC 1 ms 256 KB
subtask1-01.txt AC 1 ms 256 KB
subtask1-02.txt AC 1 ms 256 KB
subtask1-03.txt AC 1 ms 256 KB
subtask1-04.txt AC 1 ms 256 KB
subtask1-05.txt AC 1 ms 256 KB
subtask1-06.txt AC 1 ms 256 KB
subtask1-07.txt AC 2 ms 256 KB
subtask1-08.txt AC 1 ms 256 KB
subtask1-09.txt AC 1 ms 256 KB
subtask1-10.txt AC 2 ms 256 KB
subtask1-11.txt AC 2 ms 256 KB
subtask1-12.txt AC 2 ms 256 KB
subtask1-13.txt AC 2 ms 256 KB
subtask1-14.txt AC 1 ms 256 KB
subtask1-15.txt AC 1 ms 256 KB
subtask1-16.txt AC 2 ms 256 KB
subtask1-17.txt AC 1 ms 256 KB
subtask1-18.txt AC 1 ms 256 KB
subtask1-19.txt AC 1 ms 256 KB
subtask1-20.txt AC 2 ms 256 KB
subtask2-01.txt AC 12 ms 2432 KB
subtask2-02.txt AC 12 ms 2432 KB
subtask2-03.txt AC 13 ms 2432 KB
subtask2-04.txt AC 17 ms 2432 KB
subtask2-05.txt AC 12 ms 2432 KB
subtask2-06.txt AC 11 ms 2432 KB
subtask2-07.txt AC 26 ms 2432 KB
subtask2-08.txt AC 13 ms 2432 KB
subtask2-09.txt AC 27 ms 2432 KB
subtask2-10.txt AC 22 ms 2432 KB
subtask2-11.txt AC 22 ms 2432 KB
subtask2-12.txt AC 16 ms 2432 KB
subtask2-13.txt AC 13 ms 2432 KB
subtask2-14.txt AC 18 ms 2432 KB
subtask2-15.txt AC 14 ms 2432 KB
subtask2-16.txt AC 21 ms 2432 KB
subtask2-17.txt AC 10 ms 2432 KB
subtask2-18.txt AC 23 ms 2432 KB
subtask2-19.txt AC 19 ms 2432 KB
subtask2-20.txt AC 20 ms 2432 KB