Problem Link:
[https://uva.onlinejudge.org/index.php?option=onlinejudge&Itemid=99999999&page=show_problem&category=&problem=2296&mosmsg=Submission+received+with+ID+17829695]
Catagory: Sort,STL Algorithm
Reading Material: About how to create own comparator in stl sort function
[http://www.cplusplus.com/reference/algorithm/sort/]
Strategy: Just create own comparator according to the condition given in problem statement. Just Make sure that -x%y is -o, not o,
Code:
[https://uva.onlinejudge.org/index.php?option=onlinejudge&Itemid=99999999&page=show_problem&category=&problem=2296&mosmsg=Submission+received+with+ID+17829695]
Catagory: Sort,STL Algorithm
Reading Material: About how to create own comparator in stl sort function
[http://www.cplusplus.com/reference/algorithm/sort/]
Strategy: Just create own comparator according to the condition given in problem statement. Just Make sure that -x%y is -o, not o,
Code:
| #include<bits/stdc++.h> | |
| #define ll unsigned long long int | |
| using namespace std; | |
| vector<int>o,e,d,nd; | |
| int n,p,q,m; | |
| bool cmp(int x, int y) | |
| { | |
| if(x%m>y%m) | |
| return false; | |
| else if(x%m<y%m) | |
| return true; | |
| if(x%2 && y%2) | |
| return x>y; | |
| else if(x%2==0 && y%2==0) | |
| return x<y; | |
| return x%2; | |
| } | |
| int main() | |
| { | |
| while(cin>>n>>m) | |
| { d.clear(); | |
| if(!n && !m) | |
| break; | |
| for(int i=1; i<=n; i++) | |
| { | |
| cin>>q; | |
| d.push_back(q); | |
| } | |
| cout<<n<<" "<<m<<endl; | |
| sort(d.begin(),d.end(),cmp); | |
| for(int i=0; i<d.size(); i++) | |
| cout<<d[i]<<endl; | |
| } | |
| cout<<n<<" "<<m<<endl; | |
| } |
No comments:
Post a Comment