Submission #65790650
Source Code Expand
// 綺麗に解きなおし
#include <bits/stdc++.h>
using namespace std;
/////////////////// メイン ///////////////////
int main () {
//////////////////// 入力 ////////////////////
int n, m;
cin >> n >> m;
vector<int> a(m), b(m);
for (int i=0; i<m; i++) {
cin >> a.at(i) >> b.at(i);
}
//////////////// 出力変数定義 ////////////////
// とりあえず、交わる交わらない関係なく、辺の組全パターン数を計算しておく
// mの上限が30万ということは、int型に入りきらない可能性があるのでlong long型にしておく
long long result = 1LL*m*(m-1)/2;
//////////////////// 処理 ////////////////////
// 各辺についてa+bをnで割った余りを求める
// 各余りになるものがいくつあるか数えておく
vector<int> counters(n);
for (int i=0; i<m; i++) {
counters.at((a.at(i)+b.at(i))%n)++;
}
// それぞれ、同じ余りになる組がいくつあるか求め、引いていく
// 30万本全部平行だとint型に入りきらないのでlong long型にしておく
for (int num : counters) {
result -= 1LL*num*(num-1)/2;
}
//////////////////// 出力 ////////////////////
cout << result << endl;
//////////////////// 終了 ////////////////////
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Line Crossing |
| User | wightou |
| Language | C++ 23 (gcc 12.2) |
| Score | 400 |
| Code Size | 1364 Byte |
| Status | AC |
| Exec Time | 110 ms |
| Memory | 9348 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3548 KiB |
| 00_sample_01.txt | AC | 1 ms | 3380 KiB |
| 01_test_00.txt | AC | 2 ms | 3436 KiB |
| 01_test_01.txt | AC | 17 ms | 3572 KiB |
| 01_test_02.txt | AC | 2 ms | 3428 KiB |
| 01_test_03.txt | AC | 18 ms | 3556 KiB |
| 01_test_04.txt | AC | 2 ms | 3572 KiB |
| 01_test_05.txt | AC | 29 ms | 6728 KiB |
| 01_test_06.txt | AC | 109 ms | 8880 KiB |
| 01_test_07.txt | AC | 104 ms | 6512 KiB |
| 01_test_08.txt | AC | 2 ms | 3508 KiB |
| 01_test_09.txt | AC | 19 ms | 5420 KiB |
| 01_test_10.txt | AC | 108 ms | 8308 KiB |
| 01_test_11.txt | AC | 35 ms | 6772 KiB |
| 01_test_12.txt | AC | 5 ms | 7156 KiB |
| 01_test_13.txt | AC | 99 ms | 9200 KiB |
| 01_test_14.txt | AC | 110 ms | 9348 KiB |
| 01_test_15.txt | AC | 53 ms | 8084 KiB |
| 01_test_16.txt | AC | 4 ms | 7156 KiB |
| 01_test_17.txt | AC | 93 ms | 8936 KiB |
| 01_test_18.txt | AC | 31 ms | 6460 KiB |
| 01_test_19.txt | AC | 32 ms | 5408 KiB |
| 01_test_20.txt | AC | 53 ms | 4972 KiB |
| 01_test_21.txt | AC | 61 ms | 8352 KiB |
| 01_test_22.txt | AC | 51 ms | 8096 KiB |
| 01_test_23.txt | AC | 57 ms | 5744 KiB |
| 01_test_24.txt | AC | 8 ms | 6768 KiB |
| 01_test_25.txt | AC | 69 ms | 6308 KiB |
| 01_test_26.txt | AC | 11 ms | 7040 KiB |
| 01_test_27.txt | AC | 82 ms | 8836 KiB |
| 01_test_28.txt | AC | 1 ms | 3404 KiB |
| 01_test_29.txt | AC | 1 ms | 3436 KiB |
| 01_test_30.txt | AC | 1 ms | 3340 KiB |
| 01_test_31.txt | AC | 72 ms | 5400 KiB |