Submission #70638

# Submission time Handle Problem Language Result Execution time Memory
70638 2018-08-23T07:57:25 Z octopuses Alternating Current (BOI18_alternating) C++17
0 / 100
3000 ms 4620 KB
//Giorgi Kldiashvili
#include <bits/stdc++.h>

#define ll long long


using namespace std;

const int N = 100020;

int n, m;

inline int dis(int x, int y)
{
  if(y < x)
    return n + y - x + 1;
  return y - x + 1;
}

vector < pair < int, int > > A[N];
int answer[N], S[N][2];

int main()
{
  scanf("%d %d", &n, &m);
  int ci, cm; ci = cm = 0;
  for(int i = 1; i <= m; ++ i)
  {
    int x, y;
    scanf("%d %d", &x, &y);
    A[x - 1].push_back(make_pair(dis(x, y), i));
    if(dis(x, y) > cm)
      ci = x - 1, cm = dis(x, y);
  }
  for(int p = 0; p < n; ++ p)
  {
    int i = (p + ci) % n;
    for(int j = 0; j < A[i].size(); ++ j)
    {
      int x = A[i][j].first;
      int c = 0;
      for(int k = 0; k < n; ++ k)
      {
        int now = (i + k) % n;
        if(S[now][0] == 0)
        {
          c = 0;
          break;
        }
        if(S[now][1] == 0)
        {
          c = 1;
          break;
        }
      }
      answer[A[i][j].second] = c;
      for(int k = 0; k < x; ++ k)
        S[(i + k) % n][c] = 1;
    }
  }
  for(int i = 0; i < n; ++ i)
    if(S[i][0] == 0 || S[i][1] == 0)
      return printf("impossible"), 0;
  for(int i = 1; i <= m; ++ i)
    printf("%d", answer[i]);
}

Compilation message

alternating.cpp: In function 'int main()':
alternating.cpp:38:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int j = 0; j < A[i].size(); ++ j)
                    ~~^~~~~~~~~~~~~
alternating.cpp:25:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &n, &m);
   ~~~~~^~~~~~~~~~~~~~~~~
alternating.cpp:30:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d", &x, &y);
     ~~~~~^~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2792 KB Output is correct
3 Incorrect 5 ms 2792 KB 'impossible' claimed, but there is a solution
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2792 KB Output is correct
3 Incorrect 5 ms 2792 KB 'impossible' claimed, but there is a solution
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2792 KB Output is correct
3 Incorrect 5 ms 2792 KB 'impossible' claimed, but there is a solution
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 3023 ms 4620 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2792 KB Output is correct
3 Incorrect 5 ms 2792 KB 'impossible' claimed, but there is a solution
4 Halted 0 ms 0 KB -