ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Discussion of Problem 1100. Final Standings

WA on test 4
Posted by David Tvaltchrelidze 8 Dec 2006 00:44
#include <iostream>
#include <algorithm>
using namespace std;
struct cc{long x,y;};
cc a[150000];
long i,n;
bool check(cc a, cc b){
if (a.y>b.y) return 1; else return 0;
};
main(void){
scanf("%d",&n);
for(i=0;i<n;i++) cin>>a[i].x>>a[i].y;
//scanf("%d%d",&a[i].x,&a[i].y);
sort(a,a+n,check);
for(i=0;i<n;i++) cout<<a[i].x<<" "<<a[i].y<<endl;
// printf("%d %d\n",a[i].x,a[i].y);
};
I have no idea why it gives me wrong answer. can you help me??
Re: WA on test 4
Posted by Anton [SUrSU] 8 Dec 2006 03:03
there must be a stable sort
Re: WA on test 4
Posted by Madhav 11 Jun 2008 19:25
I am also getting wrong answer on test case 4.pls help me
this is my code
#include<iostream>
#include<algorithm>
using namespace std;
class node{
        public:
                unsigned long long id;
                int prob;
                bool operator<(const node &n)const{
                           return (prob>n.prob);
                   }
};
int main()
{
        int n;node *arr;int i,j;
        scanf("%d",&n);
        arr=new node[n];
        for(i=0;i<n;i++){
                cin>>arr[i].id>>arr[i].prob;
        }
        sort(arr,arr+n);
        for(i=0;i<n;i++)
        {
                cout<<arr[i].id<<" "<<arr[i].prob<<endl;
        }
        return 0;
}
Re: WA on test 4
Posted by Paweł Wanat 20 Nov 2008 17:21
I did what you had said Anton.
I got WA, when I used sort, but AC , when stable_sort , both from algorithm from c++. Why?

Edited by author 20.11.2008 17:22
Re: WA on test 4
Posted by dAFTc0d3r [Yaroslavl SU] 25 Mar 2010 03:47
I'd found a test like this. =)

For test:
36
1 1
2 2
3 2
4 3
5 3
6 3
7 4
8 4
9 4
10 4
11 5
12 5
13 5
14 5
15 5
16 6
17 6
18 6
19 6
20 6
21 6
22 7
23 7
24 7
25 7
26 7
27 7
28 7
29 8
30 8
31 8
32 8
33 8
34 8
35 8
36 8

my prog, that uses just sort() gives answer
36 8
35 8
...

and it answered correct when i used stable_sort() with same compare function:
29 8
30 8
...

After that i suppose to write new compare function, using indexes
struct state
{
  int id, m, ind; // << ind is a new param
};
bool compare( state a, state b )
{
    if ( a.m == b.m )
        return a.ind < b.ind;
    return a.m > b.m;
}

So watch at the results of my work:

sort()
WA#4

stable_sort()
AC 0.187s 1885 KB

sort() + ind
AC 0.218s 1897 KB

So we can say, stable_sort uses equal amount of additional memory, as like we use standard sort and indexes,
but at this dataset stable_sort works a little quicker!

stable_sort() + ind (i made it for lulz)
AC 0.203 2769 KB

Still quicker, than sort! =)

Counting sort
AC 0.125 1233 KB

;)

And after some zhest' optimizations...

AC 0.062 1225 KB %) %)
Re: WA on test 4
Posted by Zhang Ye 10 Oct 2011 18:41
Thank you very much!
Re: WA on test 4
Posted by 1212494 30 Sep 2013 21:50
Thank you very much, I have used a lot of sorts but they're useless. You can tell me about the idea of stable_sort because my teacher doesn't allow me to use the library C/C++. I used counting_sort and AC, but I want to install that algorithm myselft. Please help me
Re: WA on test 4
Posted by double lee 15 Oct 2013 08:19
Thank you very much!