제출 #1147617

#제출 시각아이디문제언어결과실행 시간메모리
1147617leo12345Coin Collecting (JOI19_ho_t4)Java
0 / 100
43 ms10296 KiB
import java.io.*; import java.util.*; public class joi2019_ho_t4 { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; int N = Integer.parseInt(bufferedReader.readLine()); int[] a = new int[N + 1], b = new int[N + 1]; long ans = 0; int[][] dp = new int[N + 1][3]; for (int i = 1; i <= 2 * N; i++) { st = new StringTokenizer(bufferedReader.readLine()); int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); if (x > N) { ans += (x - N); x = N; } if (x < 1) { ans += (1 - x); x = 1; } if (y > 2) { ans += (y - 2); y = 2; } if (y < 1) { ans += (1 - y); y = 1; } dp[x][y]++; if (i <= N) { dp[i][1]--; dp[i][2]--; } } for (int i = 1; i <= N; i++) { if (dp[i][1] < 0 && dp[i][2] > 0) { int m = Math.min(-dp[i][1], dp[i][2]); ans += m; dp[i][1] += m; dp[i][2] -= m; } if (dp[i][1] > 0 && dp[i][2] < 0) { int m = Math.min(dp[i][1], -dp[i][2]); ans += m; dp[i][1] -= m; dp[i][2] += m; } ans += Math.abs(dp[i][1]) + Math.abs(dp[i][2]); dp[i + 1][1] += dp[i][1]; dp[i + 1][2] += dp[i][2]; } System.out.println(ans); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...