Submission #7635556
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define ALL(a) (a).begin(),(a).end()
#define ALLR(a) (a).rbegin(),(a).rend()
#define spa << " " <<
#define lfs <<fixed<<setprecision(10)<<
#define test cout<<"test"<<endl;
#define fi first
#define se second
#define MP make_pair
#define PB push_back
#define EB emplace_back
#define rep(i,n,m) for(ll i = n; i < (ll)(m); i++)
#define rrep(i,n,m) for(ll i = n - 1; i >= (ll)(m); i--)
using ll = long long;
using ld = long double;
const ll MOD = 1e9+7;
//const ll MOD = 998244353;
const ll INF = 1e18;
using P = pair<ll, ll>;
template<typename T>
void chmin(T &a,T b){if(a>b)a=b;}
template<typename T>
void chmax(T &a,T b){if(a<b)a=b;}
void pmod(ll &a,ll b){a=(a+b)%MOD;}
void pmod(ll &a,ll b,ll c){a=(b+c)%MOD;}
void qmod(ll &a,ll b){a=(a*b)%MOD;}
void qmod(ll &a,ll b,ll c){a=(b*c)%MOD;}
ll median(ll a,ll b, ll c){return a+b+c-max({a,b,c})-min({a,b,c});}
void ans1(bool x){if(x) cout<<"Yes"<<endl;else cout<<"No"<<endl;}
void ans2(bool x){if(x) cout<<"YES"<<endl;else cout<<"NO"<<endl;}
void ans3(bool x){if(x) cout<<"Yay!"<<endl;else cout<<":("<<endl;}
template<typename T1,typename T2>
void ans(bool x,T1 y,T2 z){if(x)cout<<y<<endl;else cout<<z<<endl;}
template<typename T>
void debug(vector<vector<T>>v,ll h,ll w){for(ll i=0;i<h;i++)
{cout<<v[i][0];for(ll j=1;j<w;j++)cout spa v[i][j];cout<<endl;}};
void debug(vector<string>v,ll h,ll w){for(ll i=0;i<h;i++)
{for(ll j=0;j<w;j++)cout<<v[i][j];cout<<endl;}};
template<typename T>
void debug(vector<T>v,ll n){cout<<v[0];
for(ll i=1;i<n;i++)cout spa v[i];cout<<endl;};
template<typename T>
vector<vector<T>>vec(ll x, ll y, T w){
vector<vector<T>>v(x,vector<T>(y,w));return v;}
ll gcd(ll x,ll y){ll r;while(y!=0&&(r=x%y)!=0){x=y;y=r;}return y==0?x:y;}
template<typename T>
void emp(map<T,ll>&m, T x){m.emplace(x,0).first->second++;}
vector<ll>dx={1,0,-1,0,1,1,-1,-1};
vector<ll>dy={0,1,0,-1,1,-1,1,-1};
template<typename T>
vector<T> make_v(size_t a,T b){return vector<T>(a,b);}
template<typename... Ts>
auto make_v(size_t a,Ts... ts){
return vector<decltype(make_v(ts...))>(a,make_v(ts...));
}
ll MAX_V = 2e5 + 5;
vector<vector<ll>> G(MAX_V);//隣接リスト(添え字は始点、値は終点)
vector<ll>t(MAX_V);//訪問したかどうか
void dfs(ll k){
t[k]=1;
for(ll i=0;i<G[k].size();i++){
if(t[G[k][i]]==0){
dfs(G[k][i]);
}
}
}
int main(){
cin.tie(NULL);
ios_base::sync_with_stdio(false);
ll res=0,res1=INF,res2=-INF,buf=0;
bool judge = true;
ll n,m;cin>>n>>m;
map<ll,ll>mp;
rep(i,0,n){
ll x;cin>>x;
emp(mp,x);
}
vector<ll>a(m),b(m);
for(auto z:mp){
a[z.fi%m]+=z.se%2;
b[z.fi%m]+=z.se/2;
}
rep(i,0,m/2+1){
if(i==(m-i)%m){
res+=a[i]/2+b[i];
}
else{
ll k=(m-i)%m;
res+=min(a[i],a[k]);
if(a[i]<=a[k]){
ll x=a[k]-a[i];
res+=b[k];
if(x>=2*b[i])res+=2*b[i];
else res+=x+(2*b[i]-x)/2;
}
else{
ll x=a[i]-a[k];
res+=b[i];
if(x>=2*b[k])res+=2*b[k];
else res+=x+(2*b[k]-x)/2;
}
}
//cout<<i spa res<<endl;
}
cout<<res<<endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
D - Pair Cards |
User |
tute7627 |
Language |
C++14 (GCC 5.4.1) |
Score |
700 |
Code Size |
3257 Byte |
Status |
AC |
Exec Time |
50 ms |
Memory |
14336 KB |
Judge Result
Set Name |
sample |
all |
Score / Max Score |
0 / 0 |
700 / 700 |
Status |
|
|
Set Name |
Test Cases |
sample |
sample-01.txt, sample-02.txt |
all |
sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, sample-01.txt, sample-02.txt |
Case Name |
Status |
Exec Time |
Memory |
01-01.txt |
AC |
4 ms |
6528 KB |
01-02.txt |
AC |
43 ms |
10496 KB |
01-03.txt |
AC |
43 ms |
10496 KB |
01-04.txt |
AC |
42 ms |
10496 KB |
01-05.txt |
AC |
43 ms |
10496 KB |
01-06.txt |
AC |
42 ms |
10496 KB |
01-07.txt |
AC |
43 ms |
10496 KB |
01-08.txt |
AC |
42 ms |
10496 KB |
01-09.txt |
AC |
43 ms |
10496 KB |
01-10.txt |
AC |
43 ms |
11136 KB |
01-11.txt |
AC |
45 ms |
12032 KB |
01-12.txt |
AC |
14 ms |
6528 KB |
01-13.txt |
AC |
14 ms |
7168 KB |
01-14.txt |
AC |
49 ms |
12800 KB |
01-15.txt |
AC |
49 ms |
12800 KB |
01-16.txt |
AC |
49 ms |
12800 KB |
01-17.txt |
AC |
48 ms |
12800 KB |
01-18.txt |
AC |
49 ms |
12800 KB |
01-19.txt |
AC |
49 ms |
12928 KB |
01-20.txt |
AC |
50 ms |
14336 KB |
01-21.txt |
AC |
23 ms |
6784 KB |
01-22.txt |
AC |
23 ms |
6784 KB |
01-23.txt |
AC |
23 ms |
6784 KB |
01-24.txt |
AC |
23 ms |
6784 KB |
01-25.txt |
AC |
23 ms |
7296 KB |
01-26.txt |
AC |
24 ms |
8320 KB |
01-27.txt |
AC |
24 ms |
11264 KB |
01-28.txt |
AC |
6 ms |
8320 KB |
01-29.txt |
AC |
4 ms |
7168 KB |
01-30.txt |
AC |
5 ms |
8064 KB |
sample-01.txt |
AC |
4 ms |
6528 KB |
sample-02.txt |
AC |
3 ms |
6528 KB |