結果
| 問題 | No.245 貫け! |
| コンテスト | |
| ユーザー |
nCk_cv
|
| 提出日時 | 2015-07-17 22:56:30 |
| 言語 | Java (openjdk 25.0.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,749 bytes |
| 記録 | |
| コンパイル時間 | 2,436 ms |
| コンパイル使用メモリ | 78,688 KB |
| 実行使用メモリ | 52,372 KB |
| 最終ジャッジ日時 | 2024-07-08 09:23:01 |
| 合計ジャッジ時間 | 9,113 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 5 WA * 11 |
ソースコード
import java.awt.*;
import java.awt.geom.*;
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
int[] b = new int[n];
int[] c = new int[n];
int[] d = new int[n];
for(int i = 0; i < n; i++) {
a[i] = sc.nextInt();
b[i] = sc.nextInt();
c[i] = sc.nextInt();
d[i] = sc.nextInt();
}
int max = 0;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
int ax = a[i];
int bx = b[i];
int cx = c[j];
int dx = d[j];
Line2D xL = new Line2D.Double(ax,bx,cx,dx);
Line2D xLB = new Line2D.Double(cx,dx,ax,bx);
int ay = a[j];
int by = b[j];
int cy = c[i];
int dy = d[i];
Line2D yL = new Line2D.Double(ay,by,cy,dy);
Line2D yLB = new Line2D.Double(cy,dy,ay,by);
int xSumA = 0;
int ySumA = 0;
int xSumB = 0;
int ySumB = 0;
int xSumAB = 0;
int ySumAB = 0;
int xSumBB = 0;
int ySumBB = 0;
int xSumA2 = 0;
int ySumA2 = 0;
int xSumB2 = 0;
int ySumB2 = 0;
int xSumAB2 = 0;
int ySumAB2 = 0;
int xSumBB2 = 0;
int ySumBB2 = 0;
for(int k = 0; k < n; k++) {
Line2D target = new Line2D.Double(a[k],b[k],c[k],d[k]);
Line2D target2 = new Line2D.Double(c[k],d[k],a[k],b[k]);
if(target.intersectsLine(xL)) xSumA++;
if(target.intersectsLine(yL)) ySumA++;
if(xL.intersectsLine(target)) xSumB++;
if(yL.intersectsLine(target)) ySumB++;
if(target.intersectsLine(xLB)) xSumAB++;
if(target.intersectsLine(yLB)) ySumAB++;
if(xLB.intersectsLine(target)) xSumBB++;
if(yLB.intersectsLine(target)) ySumBB++;
if(target2.intersectsLine(xL)) xSumA2++;
if(target2.intersectsLine(yL)) ySumA2++;
if(xL.intersectsLine(target2)) xSumB2++;
if(yL.intersectsLine(target2)) ySumB2++;
if(target2.intersectsLine(xLB)) xSumAB2++;
if(target2.intersectsLine(yLB)) ySumAB2++;
if(xLB.intersectsLine(target2)) xSumBB2++;
if(yLB.intersectsLine(target2)) ySumBB2++;
}
max = Math.max(xSumA, max);
max = Math.max(ySumA, max);
max = Math.max(xSumB, max);
max = Math.max(ySumB, max);
max = Math.max(xSumAB, max);
max = Math.max(ySumAB, max);
max = Math.max(xSumBB, max);
max = Math.max(ySumBB, max);
max = Math.max(xSumA2, max);
max = Math.max(ySumA2, max);
max = Math.max(xSumB2, max);
max = Math.max(ySumB2, max);
max = Math.max(xSumAB2, max);
max = Math.max(ySumAB2, max);
max = Math.max(xSumBB2, max);
max = Math.max(ySumBB2, max);
}
}
System.out.println(max);
}
}
nCk_cv