結果
問題 |
No.1514 Squared Matching
|
ユーザー |
![]() |
提出日時 | 2025-07-07 11:14:47 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,130 bytes |
コンパイル時間 | 6,047 ms |
コンパイル使用メモリ | 274,672 KB |
実行使用メモリ | 29,448 KB |
最終ジャッジ日時 | 2025-07-07 11:14:59 |
合計ジャッジ時間 | 10,855 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 1 TLE * 1 -- * 24 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define ll long long #define endl "\n" #define pb push_back #define ff first #define ss second #define ii pair<int, int> #define vi vector<int> #define vii vector<pair<int, int>> #define vvi vector<vi> #define mii map<int, int> #define rep(i, a, b) for (int i = a; i <= b; i++) #define _READ(name) freopen(name, "r", stdin) #define _WRITE(name) freopen(name, "w", stdout) int n; const int mx = 5e7 + 3; int sq[mx]; int mp[mx]; void Prepare() { cin >> n; } int tinh(int x) { int y = 1; for (int i = 2; i *i <= x; i++) { int cnt = 0; while (x%i==0) { cnt++; x/=i; } if (cnt%2==1) y *= i; } if (x > 1) y *= x; return y; } void COOOOK() { for (int i = 1; i <= n; i++) sq[i] = tinh(i); ll ans = 0; rep(i, 1, n) { mp[sq[i]]++; } rep(i, 1, n) { ans += (mp[i]*1ll*mp[i]); } cout << ans; } void Eat() { } void Wash() { } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int TEST = 1; while (TEST--) { Prepare(); COOOOK(); Eat(); Wash(); } return 0; }