Submission #2542241
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 FFOR(i, a, b) for(int (i)=a;(i)>(b);--(i)) #define rrep(i,n) FFOR(i,0,n) #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 lb long double #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 ll long long #define mod 1000000007LL #define INF 123456789012345 typedef pair<int, int> P; typedef pair<int, P> PP; const int maxn =1e4 + 10; string s[maxn]; int main() { int n;cin >> n; rep(i,n) cin >> s[i]; string t;cin >> t; // tの前か後ろのどっちに入るか int mae = 0; int mid = 0; int usiro = 0; rep(i,n) { bool ok = false; bool notmae = false; bool notusiro = false; rep(j,s[i].size()) { if(j > t.size()-1) { if(notusiro) mid++; else usiro += 1; ok = true; break; } if(s[i][j] == '?') { if(t[j] != 'a' && t[j] != 'z') { mid++; ok=true; break; } if(t[j] == 'a') notmae = true; if(t[j] == 'z') notusiro = true; if(notmae && notusiro) { mid++; ok=true; break; } } if(s[i][j]-0 < t[j]-0) { if(notmae) mid++; else mae += 1; ok = true; break; } else if(s[i][j]-0 > t[j]-0) { if(notusiro) mid++; else usiro += 1; ok = true; break; } } if(ok) continue; if(s[i].size() == t.size()) mid++; else { if(notmae) mid++; else mae++; } } rep(i,mid) cout << mae+1+i << " "; cout <<mae+1+mid<< endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | A - Atcoder Handles |
User | sawakee |
Language | C++14 (GCC 5.4.1) |
Score | 250 |
Code Size | 2572 Byte |
Status | AC |
Exec Time | 9 ms |
Memory | 896 KB |
Judge Result
Set Name | Subtask1 | Subtask2 | ||||
---|---|---|---|---|---|---|
Score / Max Score | 130 / 130 | 120 / 120 | ||||
Status |
|
|
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 | 5 ms | 640 KB |
sub2_in3.txt | AC | 9 ms | 896 KB |