QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#390104#5420. InscryptionVeryAmazedWA 190ms3892kbC++141.7kb2024-04-15 04:06:432024-04-15 04:06:43

Judging History

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

  • [2024-04-15 04:06:43]
  • 评测
  • 测评结果:WA
  • 用时:190ms
  • 内存:3892kb
  • [2024-04-15 04:06:43]
  • 提交

answer

#include <bits/stdc++.h>

#define pb push_back
#define pii pair<int, int>
#define f first
#define s second

using namespace std;

int main() {
	cin.tie(0)->sync_with_stdio(0);
	int t; cin >> t;
	while (t--){
	  int n;
	  cin >> n;
	  int total = 1;
	  vector<int> ones;
	  vector<int> zeros;
	  vector<int> negs;
	  for(int i = 0; i < n; i++){
	    int a;
	    cin >> a;
	    if(a == 1){
	      total++;
	      ones.pb(i);
	    }else if(a == 0){
	      zeros.pb(i);
	    }else{
	      negs.pb(i);
	    }
	  }
	  vector<pii> vec;
	  int ind = 0;
	  for(int i = 0; i < ones.size(); i++){
	    while(ind < negs.size() && negs[ind] <= ones[i]){
	      ind++;
	    }
	    if(ind == negs.size()) break;
	    ones[i] = -1;
	    negs[ind] = -1;
	  }
	  int givens = 0;
	  int combines = 0;
	  for(int i = 0; i < ones.size(); i++){
	    if(ones[i] == -1) continue;
	    vec.pb({ones[i], 1});
	  }
	  for(int i = 0; i < negs.size(); i++){
	    if(negs[i] == -1) continue;
	    vec.pb({negs[i], -1});
	    combines++;
	  }
	  for(int i = 0; i < zeros.size(); i++){
	    vec.pb({zeros[i], 0});
	  }
	  sort(vec.begin(), vec.end());
	  /*
	  for(int i = 0; i < vec.size(); i++){
	    cout << vec[i].s << " ";
	  }
	  cout << "\n";
	  */
	  bool works = true;
	  for(int i = 0; i < vec.size(); i++){
	    if(vec[i].s == 1) givens++;
	    else if(vec[i].s == -1){
	      givens--;
	      combines--;
	    }else{
	      if(givens > combines) givens--;
	      else{
		givens++;
		total++;
	      }
	    }
	    if(givens < 0) works = false;
	  }
	  if(works){
	    int g = __gcd(total, givens+1);
	    cout << total/g << " " << (givens+1)/g << "\n";
	  }else{
	    cout << -1 << "\n";
	  }
	}
	cout << endl;
}

詳細信息

Test #1:

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

input:

6
7
1 1 1 -1 1 1 -1
4
1 0 -1 0
4
0 -1 -1 0
1
0
2
0 0
1
-1

output:

3 2
3 1
-1
1 1
2 1
-1


result:

ok 6 lines

Test #2:

score: 0
Accepted
time: 190ms
memory: 3892kb

input:

1000000
1
1
1
-1
1
1
1
1
1
1
1
1
1
-1
1
-1
1
0
1
0
1
1
1
0
1
-1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
-1
1
1
1
1
1
-1
1
0
1
1
1
0
1
-1
1
0
1
-1
1
1
1
-1
1
0
1
1
1
1
1
-1
1
0
1
-1
1
-1
1
-1
1
-1
1
0
1
0
1
-1
1
0
1
-1
1
0
1
0
1
0
1
0
1
0
1
-1
1
1
1
0
1
0
1
1
1
0
1
-1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
...

output:

1 1
-1
1 1
1 1
1 1
1 1
-1
-1
1 1
1 1
1 1
1 1
-1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
-1
1 1
1 1
-1
1 1
1 1
1 1
-1
1 1
-1
1 1
-1
1 1
1 1
1 1
-1
1 1
-1
-1
-1
-1
1 1
1 1
-1
1 1
-1
1 1
1 1
1 1
1 1
1 1
-1
1 1
1 1
1 1
1 1
1 1
-1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
-1
-1
1 1
1 1
-1
1 1
1 1
1 1
1 1
-1
1 1
1 1
1 ...

result:

ok 1000000 lines

Test #3:

score: -100
Wrong Answer
time: 108ms
memory: 3892kb

input:

181249
6
1 0 -1 0 1 0
4
1 -1 -1 -1
8
-1 0 0 0 1 -1 1 1
3
0 1 0
6
1 0 -1 1 -1 0
4
1 -1 -1 -1
9
0 1 0 -1 -1 0 -1 0 1
1
-1
3
0 -1 1
5
0 0 1 -1 1
3
1 -1 0
6
-1 0 0 -1 0 1
8
1 -1 -1 -1 0 1 -1 0
2
0 0
3
-1 1 0
3
0 -1 -1
10
0 1 0 -1 1 1 0 -1 1 0
3
1 0 0
9
1 -1 1 -1 0 -1 0 0 0
3
0 1 0
3
-1 0 0
7
-1 0 -1 -1 ...

output:

4 1
-1
-1
3 2
4 1
-1
3 1
-1
3 2
2 1
3 2
-1
-1
2 1
-1
-1
6 1
3 2
3 1
3 2
-1
-1
-1
-1
2 1
6 5
-1
5 4
2 1
-1
3 2
5 1
1 1
-1
3 2
-1
1 1
-1
2 1
1 1
-1
1 1
-1
1 1
3 2
-1
-1
-1
-1
3 2
5 2
1 1
-1
3 1
-1
-1
1 1
-1
6 1
3 2
-1
3 2
4 3
2 1
-1
5 3
3 1
6 1
-1
2 1
5 4
-1
1 1
-1
3 1
-1
-1
5 3
1 1
2 1
5 2
-1
3 1
4 3...

result:

wrong answer 26th lines differ - expected: '5 3', found: '6 5'