結果
問題 | No.321 (P,Q)-サンタと街の子供たち |
ユーザー |
![]() |
提出日時 | 2018-09-15 18:48:09 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 26 ms / 2,000 ms |
コード長 | 1,109 bytes |
コンパイル時間 | 1,110 ms |
コンパイル使用メモリ | 160,456 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-18 07:09:02 |
合計ジャッジ時間 | 2,882 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 41 |
ソースコード
#include "bits/stdc++.h"using namespace std;#define ll long long int#define rep(i,n) for( int i = 0; i < n; i++ )#define rrep(i,n) for( int i = n; i >= 0; i-- )#define REP(i,s,t) for( int i = s; i <= t; i++ )#define RREP(i,s,t) for( int i = s; i >= t; i-- )#define dump(x) cerr << #x << " = " << (x) << endl;#define INF 2000000000#define mod 1000000007#define INF2 1000000000000000000#define int long longint gcd(int a, int b) {if (b > a) return gcd(b, a);else if (b == 0) return a;else return gcd(b, a % b);}signed main(void){cin.tie(0);ios::sync_with_stdio(false);int P, Q;cin >> P >> Q;if (P < Q) swap(P, Q);int X[100010], Y[100010];int N; cin >> N;rep(i, N) cin >> X[i] >> Y[i];int ans = 0;if (P) {int G = gcd(P, Q);P /= G, Q /= G;if ((P + Q) % 2) {rep(i, N) if (X[i] % G == 0 && Y[i] % G == 0) ans++;}else {rep(i, N) if (X[i] % G == 0 && Y[i] % G == 0) {X[i] /= G, Y[i] /= G;if ((X[i] + Y[i]) % 2 == 0) ans++;}}}else {rep(i, N) if (X[i] == 0 && Y[i] == 0) ans++;}cout << ans << endl;return 0;}