提出 #822736


ソースコード 拡げる

#include <algorithm>
#include <array>
#include <complex>
#include <cassert>
#include <cctype>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <functional>
#include <iomanip>
#include <iostream>
#include <map>
#include <memory>
#include <queue>
#include <set>
#include <string>
#include <tuple>
#include <vector>

using namespace std;

typedef long long ll;
typedef unsigned long long ull;

inline bool valid(const int x, const int r) { return 0 <= x && x < r; }

void initIOStream() {
  ios::sync_with_stdio(false); // stdinなどと同期しない
  cin.tie(0); // cinの前にflushしない
  cout.setf(ios::fixed);
  cout.precision(10); // 四捨五入して指定桁数表示
}

int N;
vector<string> A;
vector<string> B;
vector<vector<int> > G;
vector<int> D;

int main() {
  initIOStream();

  cin >> N;
  A.resize(N);
  B.resize(N);
  for(int i = 0; i < N; ++i){
    cin >> A[i] >> B[i];
  }

  G = vector<vector<int> >(26, vector<int>());
  D = vector<int>(26, 0);
  for(int i = 0; i < N; ++i){
    bool f = false;
    for(int j = 0, size = min(A[i].size(), B[i].size()); j < size; ++j){
      if(A[i][j] != B[i][j]){
        G[A[i][j] - 'a'].emplace_back(B[i][j] - 'a');
        ++D[B[i][j] - 'a'];
        f = true;
        break;
      }
    }
    if(!f){
      cout << -1 << endl;
      return 0;
    }
  }

  string ans;
  vector<bool> used(26, false);
  // for(const auto& d : D) cout << d << " "; cout << endl;
  while(ans.size() < 26){
    int idx = -1;
    for(int i = 0; i < 26; ++i){
      if(used[i]) continue;
      if(!D[i]){
        idx = i;
        break;
      }
    }
    if(idx == -1){
      ans = "-1";
      break;
    }
    ans.push_back('a' + idx);
    used[idx] = true;
    for(int i = 0, size = G[idx].size(); i < size; ++i){
      --D[G[idx][i]];
    }
  }
  cout << ans << endl;
}

提出情報

提出日時
問題 C - 山田山本問題
ユーザ lawel3110
言語 C++14 (GCC 5.4.1)
得点 0
コード長 1980 Byte
結果 WA
実行時間 16 ms
メモリ 2432 KiB

ジャッジ結果

セット名 All
得点 / 配点 0 / 600
結果
AC × 32
WA × 13
セット名 テストケース
All 00_sample_01, 00_sample_02, 00_sample_03, 00_sample_04, 01_manual_00, 01_manual_01, 01_manual_02, 01_manual_03, 01_manual_04, 01_manual_05, 01_manual_06, 01_manual_07, 10_random_00, 10_random_01, 10_random_02, 10_random_03, 10_random_04, 10_random_05, 10_random_06, 10_random_07, 10_random_08, 10_random_09, 30_random_00, 30_random_01, 30_random_02, 30_random_03, 30_random_04, 30_random_05, 30_random_06, 30_random_07, 30_random_08, 30_random_09, 50_random_00, 50_random_01, 50_random_02, 50_random_03, 50_random_04, 50_random_05, 50_random_06, 50_random_07, 50_random_08, 50_random_09, 51_random_00, 51_random_01, 51_random_02
ケース名 結果 実行時間 メモリ
00_sample_01 AC 4 ms 256 KiB
00_sample_02 AC 4 ms 256 KiB
00_sample_03 AC 4 ms 256 KiB
00_sample_04 AC 4 ms 256 KiB
01_manual_00 AC 4 ms 256 KiB
01_manual_01 AC 4 ms 256 KiB
01_manual_02 AC 4 ms 256 KiB
01_manual_03 WA 4 ms 256 KiB
01_manual_04 AC 4 ms 256 KiB
01_manual_05 AC 4 ms 256 KiB
01_manual_06 AC 4 ms 256 KiB
01_manual_07 AC 16 ms 2432 KiB
10_random_00 AC 4 ms 256 KiB
10_random_01 AC 4 ms 256 KiB
10_random_02 AC 4 ms 256 KiB
10_random_03 AC 4 ms 256 KiB
10_random_04 AC 4 ms 256 KiB
10_random_05 AC 4 ms 256 KiB
10_random_06 WA 4 ms 256 KiB
10_random_07 WA 4 ms 256 KiB
10_random_08 AC 4 ms 256 KiB
10_random_09 AC 4 ms 256 KiB
30_random_00 AC 4 ms 256 KiB
30_random_01 AC 4 ms 256 KiB
30_random_02 AC 4 ms 256 KiB
30_random_03 AC 4 ms 256 KiB
30_random_04 AC 4 ms 256 KiB
30_random_05 AC 4 ms 256 KiB
30_random_06 AC 4 ms 256 KiB
30_random_07 AC 4 ms 256 KiB
30_random_08 AC 4 ms 256 KiB
30_random_09 AC 4 ms 256 KiB
50_random_00 WA 10 ms 2048 KiB
50_random_01 WA 10 ms 1920 KiB
50_random_02 WA 11 ms 2176 KiB
50_random_03 WA 11 ms 2048 KiB
50_random_04 WA 12 ms 1920 KiB
50_random_05 WA 11 ms 2176 KiB
50_random_06 WA 12 ms 1792 KiB
50_random_07 WA 11 ms 2176 KiB
50_random_08 WA 11 ms 1920 KiB
50_random_09 WA 11 ms 2176 KiB
51_random_00 AC 12 ms 2176 KiB
51_random_01 AC 10 ms 1920 KiB
51_random_02 AC 11 ms 1920 KiB