Submission #1213094


Source Code Expand

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int n;
string s[10000];
string t;

int main() {
	int i, j;
	
	cin >> n;
	for (i = 0; i < n; i++) cin >> s[i];
	cin >> t;
	
	int maxCnt = 0;		//Tの上にある語数の最大値
	int minCnt = n;		//Tの上にある語数の最小値
	
	for (i = 0; i < n; i++) {
		string s1, s2;	//s1…ありうる辞書順最小, s2…ありうる辞書順最大
		for (j = 0; j < s[i].length(); j++) {
			if (s[i][j] == '?') s1 += 'a';
			else s1 += s[i][j];
		}
		for (j = 0; j < s[i].length(); j++) {
			if (s[i][j] == '?') s2 += 'z';
			else s2 += s[i][j];
		}
		
		if (s1 <= t) {	//tの上に来る可能性があるか?
			maxCnt++;
		}
		if (s2 >= t) {	//tの下に来る可能性があるか?
			minCnt--;
		}
	}
	
	vector<int> ans;
	for (i = minCnt; i <= maxCnt; i++) {
		ans.push_back(i + 1);
	}
	for (i = 0; i < ans.size(); i++) {
		cout << ans[i];
		if (i + 1 < ans.size()) cout << " ";
	}
	cout << endl;
	
	return 0;
}

Submission Info

Submission Time
Task A - Atcoder Handles
User startcpp
Language C++14 (GCC 5.4.1)
Score 250
Code Size 1047 Byte
Status AC
Exec Time 15 ms
Memory 896 KB

Judge Result

Set Name Subtask1 Subtask2
Score / Max Score 130 / 130 120 / 120
Status
AC × 3
AC × 6
Set Name Test Cases
Subtask1 sub1_in1.txt, sub1_in2.txt, sub1_in3.txt
Subtask2 sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub2_in1.txt, sub2_in2.txt, sub2_in3.txt
Case Name Status Exec Time Memory
sub1_in1.txt AC 1 ms 384 KB
sub1_in2.txt AC 2 ms 384 KB
sub1_in3.txt AC 2 ms 384 KB
sub2_in1.txt AC 1 ms 384 KB
sub2_in2.txt AC 8 ms 640 KB
sub2_in3.txt AC 15 ms 896 KB