結果
問題 | No.2851 Make Pairs |
ユーザー |
![]() |
提出日時 | 2024-08-25 13:34:48 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 65 ms / 2,000 ms |
コード長 | 4,778 bytes |
コンパイル時間 | 4,218 ms |
コンパイル使用メモリ | 238,264 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-08-25 13:34:57 |
合計ジャッジ時間 | 4,858 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 8 |
コンパイルメッセージ
main.cpp:166:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type] 166 | main(){ | ^~~~
ソースコード
#include<bits/stdc++.h>#include<atcoder/all>using namespace std;using namespace atcoder;using ll=long long;#pragma GCC target("avx2")#pragma GCC optimize("O3")#pragma GCC optimize("unroll-loops")#define doubleketa cout<<fixed<<setprecision(10);#define speedup std::cin.tie(0)->sync_with_stdio(0);#define _GLIBCXX_DEBUG //優先度付きキュー使って時間制限厳しい場合コメントアウト//#define int ll#define int_max 2147483647#define int_min -2147483647#define uint_max 4294967295#define ll_max 9223372036854775807#define ll_min -9223372036854775807#define ull_max 18446744073709551615#define rep(i,n) for(ll i=0;i<(n);i++)#define reps(i,n) for(ll i=1;i<=(n);i++)#define REP(i,j,n) for(ll i=(j);i<(n);i++)#define all(a) (a).begin(), (a).end()#define repc(i,n,A) rep(i,n)cin>>A[i]#define REPC(i,j,n,A) REP(i,j,n)cin>>A[i]#define repc2(i,n,A,B) rep(i,n)cin>>A[i]>>B[i]#define REPC2(i,j,n,A,B) REP(i,j,n)cin>>A[i]>>B[i]#define repc2vec(i,j,a,b,A) rep(i,a)rep(j,b)cin>>A[i][j]#define REPC2VEC(i,j,k,a,b,A) REP(i,k,a)REP(j,k,b)cin>>A[i][j]#define repair(i,n,A) rep(i,n)cin>>A[i].F>>A[i].S#define REPAIR(i,j,n,A) REP(i,j,n)cin>>A[i].F>>A[i].S#define ST(A) sort(all(A))#define RV(A) reverse(all(A))#define juufuku(A) A.erase(unique(all(A)),A.end());#define pb push_back#define mp make_pair#define mt make_tuple#define Endl endl#define F first#define S second#define yes(b) ((b)?"yes":"no")#define Yes(b) ((b)?"Yes":"No")#define YES(b) ((b)?"YES":"NO")#define TA(b) ((b)?"Takahashi":"Aoki")#define AB(b) ((b)?"Alice":"Bob")using vecll=vector<ll>; using vecst=vector<string>; using vecch=vector<char>;using vecll2=vector<vecll>; using vecst2=vector<vecst>; using pll=pair<ll,ll>;using vecch2=vector<vecch>; using vecpll=vector<pll>; using vecpll2=vector<vecpll>;using vecbo=vector<bool>; using vecbo2=vector<vecbo>;using vecdo=vector<double>; using vecdo2=vector<vecdo>;template <typename T> inline T gcd(T a,T b){return (b==0)?a:gcd(b,a%b);}//最大公約数template <typename T> inline T lcm(T a,T b){return (a*b)/gcd(a,b);}//最小公倍数template <typename T>bool chmax(T &a,const T& b){if(a<b){a=b;return true;}return false;}template <typename T>bool chmin(T &a,const T& b){if(a>b){a=b; // aをbで更新return true;}return false;}ll max(int a,ll b){return max((ll)a,b);}ll max(ll a,int b){return max((ll)b,a);}ll min(int a,ll b){return min((ll)a,b);}ll min(ll a,int b){return min((ll)b,a);}vecll DX={0,1,0,-1,1,1,-1,-1};vecll DY={1,0,-1,0,1,-1,1,-1};ll mod=998244353;ll modgyakugen=499122177;ll MOD=1000000007;ll INF=1e15;/**この色綺麗**///ここからコード入力(関数使用時用)//関数ll randint(ll a,ll b){return a+rand()%(b-a+1);}double randouble(){return 1.0*rand()/RAND_MAX;}/*ll nibutan(ll K){//二分探索 .size()=要素数 [m]の前配列名ll ng=-1;ll ok=.size();while(ok-ng>1){ll m=(ng+ok)/2;if([m]<=K)ok=m;else ng=m;}return ok;}*/vecpll soinsuubunkai(ll N){vecpll res;for(ll a=2;a*a<=N;a++){if(N%a!=0)continue;int ex=0; // 指数// 割れる限り割り続けるwhile(N%a==0){ex++;N/=a;}// その結果を pushres.pb({a,ex});}// 最後に残った数についてif(N!=1)res.pb({N,1});return res;//N=6 {2,1} {3,1}(2^1*3^1)のようになる autoで受け取ろう}vecll yakusuurekkyo(ll N){// 答えを表す集合vecll res;// 各整数 i が N の約数かどうかを調べるfor (ll i=1;i*i<=N;++i){// i が N の約数でない場合はスキップif(N%i!=0)continue;// i は約数であるres.pb(i);// N ÷ i も約数である (重複に注意)if(N/i!=i)res.pb(N/i);}// 約数を小さい順に並び替えて出力ST(res);return res;}unsigned ketasuu(unsigned num){unsigned digit=0;while(num!=0){num/=10;digit++;}return digit;}/*//コンビネーションll C_MAX=510000;vecll fac(C_MAX);vecll finv(C_MAX);vecll inv(C_MAX);// テーブルを作る前処理void COMinit(){fac[0]=fac[1]=1;finv[0]=finv[1]=1;inv[1]=1;REP(i,2,C_MAX){fac[i]=fac[i-1]*i%mod;inv[i]=mod-inv[mod%i]*(mod/i)%mod;finv[i]=finv[i-1]*inv[i]%mod;}}//二項係数計算ll COM(ll n,ll k){if(n<k)return 0;if(n<0||k<0)return 0;return fac[n]*(finv[k]*finv[n-k]%mod)%mod;}void kitaitimod(ll a,ll b){//a/bll denominator=inv_mod(b,mod);cout<<a*denominator%mod<<endl;return;}*///ここからコード入力( ´・ω・` )main(){ll A,ans=0;cin>>A;vecll B(A);repc(i,A,B);vecll C(A);rep(i,A)C[B[i]-1]++;rep(i,A)ans+=C[i]%2;cout<<(A-ans)/2<<endl;}