Submission #2106152


Source Code Expand

#include <iostream>
#include <cmath>
#include <vector>
#include <bitset>
#include <algorithm>
#include <stack>
#include <queue>
#include <map>
#include <climits>
#include <set>
#include <map>
#include <iomanip>
#include <cassert>
#include <functional>
#include <cstring>

using namespace std;

#define mp make_pair
#define FOR(i, a, b) for(int (i)=a;(i)<(b);++(i))
#define rep(i, n)  FOR(i,0,n)
#define rrep(i,m,n) for(int i=(int)(m); i>=(int)(n); i--)
#define vsort(v) sort((v).begin(), (v).end());					//小さい順
#define rvsort(v) sort(v.begin(), v.end(),greater<>());		//大きい順
#define YES cout<<"YES"<< endl
#define NO cout<<"NO"<<endl
#define Yes cout<<"Yes"<<endl
#define No cout<<"No"<<endl  
#define yes cout<<"yes"<<endl
#define no cout<<"no"<<endl
#define all(c) (c).begin(),(c).end()
#define ll long long
#define vi vector<int>
#define vvi vector<vector<int>>
#define vl vector<ll>
#define vvl vector<vector<ll>>
#define vb vector<bool>
#define vvb vector<vector<bool>>
#define vs vector<string>
#define vc vector<char>
#define vvc vector<vector<char>>
#define Print(p) cout<<(p)<<endl
#define F first
#define S second
#define pb push_back
#define mod 1000000007LL
#define INF 1234567890123
typedef pair<ll, ll> P;



//initialization here
//
const int maxn = 1e5+10;
vi v[55];
//int d[15];
string y[10];
//
//initialization finish


// your function is here
//

//
// your function finished



int main() {
	cin.tie(0);
	ios::sync_with_stdio(false);
	// your code is here
	//
	int k, n; cin >> k >> n;
	string w[55];
	rep(i, n)
	{
		int x;
		
		cin >> x >> w[i];

		while (x) 
		{
			int tmp = x % 10-1;
			v[i].pb(tmp);
			x /= 10;
		}
		reverse(all(v[i]));
	}

	ll count = 0;
	rep(i, pow(3, k)) //文字の長さ全て試す
	{
		count++;
		int para = i;
		int cnt = 0;
		int d[15];
		rep(j, k) d[j] = 1;

		while(para)
		{
			d[cnt] = para % 3 + 1;
			para /= 3;
			cnt++;
		}

		rep(l,k)y[l] =  "";
		bool ok = true;
		int start;
		rep(j, n)
		{
			start = 0;
			for (auto u : v[j])
			{
				if (start+d[u] > w[j].size())
				{
					ok = false;
					break;
				}
				if (y[u] == "") y[u] = w[j].substr(start, d[u]);
				else if (y[u] != w[j].substr(start, d[u]))
				{
					ok = false;
					break;
				}
				start += d[u];
			}
			if (!ok) break;
			if (start != w[j].size())
			{
				ok = false;
				break;
			}

		}
		if (ok) break;
	}

	rep(i, k) Print(y[i]);


	//
	// your code finished


	return 0;
}

Submission Info

Submission Time
Task D - 語呂合わせ
User sawakee
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2579 Byte
Status AC
Exec Time 14 ms
Memory 256 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 40 / 40 60 / 60
Status
AC × 4
AC × 23
AC × 44
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt
Subtask1 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 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
Case Name Status Exec Time Memory
sample-01.txt AC 1 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 1 ms 256 KB
subtask1-08.txt AC 1 ms 256 KB
subtask1-09.txt AC 1 ms 256 KB
subtask1-10.txt AC 1 ms 256 KB
subtask1-11.txt AC 1 ms 256 KB
subtask1-12.txt AC 1 ms 256 KB
subtask1-13.txt AC 1 ms 256 KB
subtask1-14.txt AC 1 ms 256 KB
subtask1-15.txt AC 1 ms 256 KB
subtask1-16.txt AC 1 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 1 ms 256 KB
subtask2-01.txt AC 4 ms 256 KB
subtask2-02.txt AC 3 ms 256 KB
subtask2-03.txt AC 6 ms 256 KB
subtask2-04.txt AC 9 ms 256 KB
subtask2-05.txt AC 9 ms 256 KB
subtask2-06.txt AC 4 ms 256 KB
subtask2-07.txt AC 13 ms 256 KB
subtask2-08.txt AC 2 ms 256 KB
subtask2-09.txt AC 14 ms 256 KB
subtask2-10.txt AC 12 ms 256 KB
subtask2-11.txt AC 11 ms 256 KB
subtask2-12.txt AC 6 ms 256 KB
subtask2-13.txt AC 9 ms 256 KB
subtask2-14.txt AC 9 ms 256 KB
subtask2-15.txt AC 7 ms 256 KB
subtask2-16.txt AC 3 ms 256 KB
subtask2-17.txt AC 1 ms 256 KB
subtask2-18.txt AC 11 ms 256 KB
subtask2-19.txt AC 10 ms 256 KB
subtask2-20.txt AC 10 ms 256 KB