Submission #6423328
Source Code Expand
#include <stdio.h>
#include <algorithm>
#include <assert.h>
#include <bitset>
#include <cmath>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits.h>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <time.h>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <chrono>
#include <random>
#include <time.h>
#include <fstream>
#define ll long long
#define rep2(i,a,b) for(ll i=a;i<=b;++i)
#define rep(i,n) for(ll i=0;i<n;i++)
#define rep3(i,a,b) for(ll i=a;i>=b;i--)
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pq priority_queue<int>
#define pqg priority_queue<int,vector<int>,greater<int>>
#define pb push_back
#define vec vector<int>
#define vecll vector<ll>
#define vecpii vector<pii>
#define endl "\n"
#define all(c) begin(c),end(c)
using namespace std;
int in() {int x;scanf("%d",&x);return x;}
ll lin() {ll x;scanf("%lld",&x);return x;}
#define INF 1e9+7
#define LLINF 1e18+7
#define N 250000
ll MOD=1e9+7;
main(){
int n=in(),m=in();
vector<int> v;
rep(i,n){
v.pb(in());
}
sort(all(v));
vector<pii> cnt(m+1);
for(int i=0;i<v.size();i++){
int j=0;
while(i+j<v.size()&&v[i+j]==v[i]){
j++;
}
cnt[v[i]%m].first+=j;
cnt[v[i]%m].second+=j/2;
i+=j;
i--;
}
ll ans=0;
rep(i,(m+1)/2){
if(i*2==m||i==0){
ans+=cnt[i].first/2;
}
else{
pii p=cnt[i],q=cnt[m-i];
ans+=min(p.first,q.first);
//cout<<ans<<endl;
if(p.first>q.first){
ans+=min(p.first-q.first,p.second*2)/2*2;
}
else{
ans+=min(-p.first+q.first,q.second*2)/2*2;
}
}
}
cout<<ans;
}
Submission Info
Submission Time
2019-07-18 14:05:32+0900
Task
D - Pair Cards
User
noimi
Language
C++14 (GCC 5.4.1)
Score
0
Code Size
2005 Byte
Status
WA
Exec Time
19 ms
Memory
1528 KB
Compile Error
./Main.cpp: In function ‘int in()’:
./Main.cpp:41:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
int in() {int x;scanf("%d",&x);return x;}
^
./Main.cpp: In function ‘long long int lin()’:
./Main.cpp:42:32: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
ll lin() {ll x;scanf("%lld",&x);return x;}
^
Judge Result
Set Name
sample
all
Score / Max Score
0 / 0
0 / 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
1 ms
256 KB
01-02.txt
AC
18 ms
892 KB
01-03.txt
WA
18 ms
892 KB
01-04.txt
WA
18 ms
892 KB
01-05.txt
WA
18 ms
892 KB
01-06.txt
WA
18 ms
892 KB
01-07.txt
WA
18 ms
892 KB
01-08.txt
WA
18 ms
892 KB
01-09.txt
WA
18 ms
892 KB
01-10.txt
WA
18 ms
1016 KB
01-11.txt
WA
19 ms
1528 KB
01-12.txt
WA
12 ms
892 KB
01-13.txt
WA
12 ms
1144 KB
01-14.txt
WA
18 ms
892 KB
01-15.txt
AC
18 ms
892 KB
01-16.txt
WA
18 ms
892 KB
01-17.txt
AC
18 ms
892 KB
01-18.txt
AC
18 ms
892 KB
01-19.txt
AC
18 ms
892 KB
01-20.txt
AC
18 ms
1528 KB
01-21.txt
WA
16 ms
892 KB
01-22.txt
WA
16 ms
892 KB
01-23.txt
WA
16 ms
892 KB
01-24.txt
WA
16 ms
892 KB
01-25.txt
WA
16 ms
892 KB
01-26.txt
WA
17 ms
1528 KB
01-27.txt
AC
10 ms
1404 KB
01-28.txt
WA
2 ms
1024 KB
01-29.txt
AC
2 ms
512 KB
01-30.txt
AC
2 ms
1024 KB
sample-01.txt
AC
1 ms
256 KB
sample-02.txt
AC
1 ms
256 KB