제출 #478556

#제출 시각아이디문제언어결과실행 시간메모리
478556Mackerel_PikeCoin Collecting (JOI19_ho_t4)C++14
100 / 100
50 ms1476 KiB
#include <bits/stdc++.h>

using namespace std;

const int maxn = 1e5 + 5;

int n;
long long ans = 0;
int cnt[maxn][3];

int main(){
  //freopen("c.in", "r", stdin);
  //freopen("c.out", "w", stdout);
  
  scanf("%d", &n);
  for(int i = 0; i < n * 2; ++i){
    int x, y; scanf("%d%d", &x, &y);
    int nx = max(1, min(n, x)), ny = max(1, min(2, y));
    ++cnt[nx][ny], ans += abs(nx - x) + abs(ny - y);
  }
  for(int i = 1; i <= n; ++i){
    if(cnt[i][1] < 1 && cnt[i][2] > 1){
      int res = min(1 - cnt[i][1], cnt[i][2] - 1);
      ans += res, cnt[i][2] -= res, cnt[i][1] += res;
    }
    if(cnt[i][2] < 1 && cnt[i][1] > 1){
      int res = min(1 - cnt[i][2], cnt[i][1] - 1);
      ans += res, cnt[i][1] -= res, cnt[i][2] += res;
    }
    ans += abs(cnt[i][1] - 1), cnt[i + 1][1] += cnt[i][1] - 1, cnt[i][1] = 1;
    ans += abs(cnt[i][2] - 1), cnt[i + 1][2] += cnt[i][2] - 1, cnt[i][2] = 1;
  }

  printf("%lld\n", ans);
  return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

joi2019_ho_t4.cpp: In function 'int main()':
joi2019_ho_t4.cpp:15:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |   scanf("%d", &n);
      |   ~~~~~^~~~~~~~~~
joi2019_ho_t4.cpp:17:20: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |     int x, y; scanf("%d%d", &x, &y);
      |               ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...