QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#522404#4632. Card SharkAchtoriaWA 5ms34136kbC++141.4kb2024-08-16 22:22:592024-08-16 22:22:59

Judging History

你现在查看的是最新测评结果

  • [2024-08-16 22:22:59]
  • 评测
  • 测评结果:WA
  • 用时:5ms
  • 内存:34136kb
  • [2024-08-16 22:22:59]
  • 提交

answer

#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define rep(i, l, r) for (int i = l; i <= r; ++i)
const int N = 1e6 + 5;
struct edge { int v, id; } ;  
int n, m, c, l, tp, st[N], cur[N], in[N], out[N]; char s[N]; 
vector <edge> G[N]; 

void add (int u, int v, int id) {
  ++in[v], ++out[u]; 
  G[u].push_back((edge){v, id}); 
}
void euler (int u) {
  for (int &i = cur[u]; i < G[u].size(); ) {
    int id = G[u][i].id; 
    ++i, euler(G[u][i - 1].v); 
    st[++tp] = id; 
  }
}

int main () {
  ios :: sync_with_stdio(0), cin.tie(0), cout.tie(0); 
  cin >> n >> m >> c;
  rep(i, 1, n) {
    cin >> (s + 1), l = strlen(s + 1); 
    int lst = 0, fst = 0; 
    rep(j, 1, l) if (s[j] == '1') {
      if (lst && (j - lst) != m) {
        cout << -1 << '\n'; return 0; 
      } 
      if (!lst) {
        fst = j; 
        if (j > m) { 
          cout << -1 << '\n'; return 0; 
        }
      }
      lst = j; 
    }
    if (l - lst >= m) { 
      cout << -1 << '\n'; return 0; 
    }
    add((c - fst + m) % m, (c - fst + l + m) % m, i); 
  }
  rep(i, 0, m - 1) if (in[i] != out[i]) {
    cout << -1 << '\n'; return 0; 
  } 
  rep(i, 0, m - 1) sort(G[i].begin(), G[i].end(), [](edge a, edge b) {
    return a.id < b.id; 
  }); 
  euler(0); 
  for ( ; tp; --tp) cout << st[tp] << ' '; cout << '\n'; 
  return 0; 
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 34068kb

input:

5 4 3
0100010
00100
001000100
0010
0100010

output:

2 1 3 5 4 

result:

ok single line: '2 1 3 5 4 '

Test #2:

score: 0
Accepted
time: 4ms
memory: 32836kb

input:

4 2 1
010
10101
010
10101

output:

2 1 4 3 

result:

ok single line: '2 1 4 3 '

Test #3:

score: 0
Accepted
time: 3ms
memory: 34136kb

input:

1 5 3
001000010000100

output:

1 

result:

ok single line: '1 '

Test #4:

score: -100
Wrong Answer
time: 5ms
memory: 30852kb

input:

2 5 3
01000
00010

output:



result:

wrong answer 1st lines differ - expected: '-1', found: ''