EasyをHackされて0完。
Div1 Easy MarriageAndCirclingChallenge
ツイートの通りです。
C++を使うときはOverflowを気にするのは当然だと思っているし、コンテスト中も気にしていたのに、こんなミスをするのは酷い。
一応、システムテストを通ったコードを貼り付けます。
- #include <bits/stdc++.h>
- using namespace std;
- class MarriageAndCirclingChallenge
- {
- public:
- long long solve(int N, int threshold, int state)
- {
- vector<vector<int>> E(N);
- long long sc=state;
- int ch=0;
- for (int i = 0; i < N; i += 1){
- for (int j = i+1; j < N; j += 1){
- sc=(sc * 1103515245 + 12345) % (1<<31);
- ch=sc%100;
- //printf("%d ",ch);
- if (ch < threshold){
- E[i].push_back(j);
- }
- else{
- E[j].push_back(i);
- }
- }
- }
- long long ANS=0;
- vector<vector<int>> X(N, vector<int>(N));
- for (int i = 0; i < N; i += 1){
- for (int j = 0; j < N; j += 1){
- X[i][j]=0;
- }
- }
- for (int i = 0; i < N; i += 1){
- for (auto j:E[i]){
- for (auto k:E[j]){
- X[i][k]+=1;
- }
- }
- }
- for (int i = 0; i < N; i += 1){
- for (int j = 0; j < N; j += 1){
- ANS+=X[i][j]*X[j][i];
- }
- }
- return ANS/4;
- }
- };
0 件のコメント:
コメントを投稿