class Item{
int upTo, quantity;
void set( int upTo, int quantity) {
this .upTo = upTo; this .quantity = quantity;
}
}
class MyComparator implements Comparator< Item> {
public int compare( Item one, Item two) {
if ( one.upTo ! = two.upTo )
return one.upTo - two.upTo ;
return 0 ;
}
}
public String isFair( int n, int b, int [ ] upTo, int [ ] quantity) {
int q = upTo.length ;
Item[ ] t = new Item[ q+ 1 ] ;
for ( int i = 0 ; i < q; ++ i) {
t[ i] = new Item( ) ;
t[ i] .set ( upTo[ i] , quantity[ i] ) ;
}
t[ q] = new Item( ) ;
t[ q] .set ( b, n) ;
Arrays.sort ( t, new MyComparator( ) ) ;
int prev_upTo = 0 , prev_quan = 0 ;
String YES = "fair" ;
String NO = "unfair" ;
int min_even = 0 , max_even = 0 ;
for ( int i = 0 ; i < q+ 1 ; ++ i) {
int even = 0 , odd = 0 ;
for ( int j = prev_upTo + 1 ; j <= t[ i] .upTo ; ++ j) {
if ( j % 2 == 0 ) ++ even;
else ++ odd;
}
int quan = t[ i] .quantity - prev_quan;
if ( quan < 0 || quan > even + odd) return NO;
prev_upTo = t[ i] .upTo ;
prev_quan = t[ i] .quantity ;
min_even + = Math.max ( 0 , quan - odd) ;
max_even + = Math.min ( even, quan) ;
}
// System.out.println(min_even + " " + max_even);
if ( min_even <= n/ 2 && n/ 2 <= max_even) return YES;
return NO;
}
Y2xhc3MgSXRlbXsKICAgIGludCB1cFRvLCBxdWFudGl0eTsKICAgIHZvaWQgc2V0KGludCB1cFRvLCBpbnQgcXVhbnRpdHkpIHsKICAgICAgICB0aGlzLnVwVG8gPSB1cFRvOyB0aGlzLnF1YW50aXR5ID0gcXVhbnRpdHk7CiAgICB9Cn0KY2xhc3MgTXlDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvcjxJdGVtPnsKICAgIHB1YmxpYyBpbnQgY29tcGFyZShJdGVtIG9uZSwgSXRlbSB0d28pewogICAgICAgIGlmKG9uZS51cFRvICE9IHR3by51cFRvKQogICAgICAgICAgICByZXR1cm4gb25lLnVwVG8gLSB0d28udXBUbzsKICAgICAgICByZXR1cm4gMDsKICAgIH0KfQoKICAgIHB1YmxpYyBTdHJpbmcgaXNGYWlyKGludCBuLCBpbnQgYiwgaW50W10gdXBUbywgaW50W10gcXVhbnRpdHkpIHsKICAgICAgICBpbnQgcSA9IHVwVG8ubGVuZ3RoOwogICAgICAgIEl0ZW1bXSB0ID0gbmV3IEl0ZW1bcSsxXTsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgcTsgKytpKSB7CiAgICAgICAgICAgIHRbaV0gPSBuZXcgSXRlbSgpOwogICAgICAgICAgICB0W2ldLnNldCh1cFRvW2ldLCBxdWFudGl0eVtpXSk7CiAgICAgICAgfQogICAgICAgIHRbcV0gPSBuZXcgSXRlbSgpOwogICAgICAgIHRbcV0uc2V0KGIsIG4pOwogICAgICAgIEFycmF5cy5zb3J0KHQsIG5ldyBNeUNvbXBhcmF0b3IoKSk7CiAgICAgICAgaW50IHByZXZfdXBUbyA9IDAsIHByZXZfcXVhbiA9IDA7CiAgICAgICAgU3RyaW5nIFlFUyA9ICJmYWlyIjsKICAgICAgICBTdHJpbmcgTk8gPSAidW5mYWlyIjsKICAgICAgICBpbnQgbWluX2V2ZW4gPSAwLCBtYXhfZXZlbiA9IDA7CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHErMTsgKytpKSB7CiAgICAgICAgICAgIGludCBldmVuID0gMCwgb2RkID0gMDsKICAgICAgICAgICAgZm9yKGludCBqID0gcHJldl91cFRvICsgMTsgaiA8PSB0W2ldLnVwVG87ICsraikgewogICAgICAgICAgICAgICAgaWYoaiAlIDIgPT0gMCkgKytldmVuOwogICAgICAgICAgICAgICAgZWxzZSArK29kZDsKICAgICAgICAgICAgfQogICAgICAgICAgICBpbnQgcXVhbiA9IHRbaV0ucXVhbnRpdHkgLSBwcmV2X3F1YW47CiAgICAgICAgICAgIGlmKHF1YW4gPCAwIHx8IHF1YW4gPiBldmVuICsgb2RkKSByZXR1cm4gTk87CiAgICAgICAgICAgIHByZXZfdXBUbyA9IHRbaV0udXBUbzsKICAgICAgICAgICAgcHJldl9xdWFuID0gdFtpXS5xdWFudGl0eTsKICAgICAgICAgICAgbWluX2V2ZW4gKz0gTWF0aC5tYXgoMCwgcXVhbiAtIG9kZCk7CiAgICAgICAgICAgIG1heF9ldmVuICs9IE1hdGgubWluKGV2ZW4sIHF1YW4pOwogICAgICAgIH0KICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4obWluX2V2ZW4gKyAiICIgKyBtYXhfZXZlbik7CiAgICAgICAgaWYobWluX2V2ZW4gPD0gbi8yICYmIG4vMiA8PSBtYXhfZXZlbikgcmV0dXJuIFlFUzsKICAgICAgICByZXR1cm4gTk87CiAgICB9Cg==
compilation info
prog.cpp:6:1: error: expected ';' after class definition
}
^
prog.cpp: In member function 'void Item::set(int, int)':
prog.cpp:4:14: error: request for member 'upTo' in '(Item*)this', which is of pointer type 'Item*' (maybe you meant to use '->' ?)
this.upTo = upTo; this.quantity = quantity;
^
prog.cpp:4:32: error: request for member 'quantity' in '(Item*)this', which is of pointer type 'Item*' (maybe you meant to use '->' ?)
this.upTo = upTo; this.quantity = quantity;
^
prog.cpp: At global scope:
prog.cpp:7:31: error: expected initializer before 'Comparator'
class MyComparator implements Comparator<Item>{
^
stdout