60分求调(TLE)
查看原帖
60分求调(TLE)
947202
wangruize88楼主2024/10/13 12:15
#include <bits/stdc++.h>
using namespace std ;
struct child {
	int g , s , b ;
	int num1 , num2 , num3 , i ;
}kid[1000001];
bool cmp1 ( child a , child b ) {
	return a.g > b.g ;
}
bool cmp2 ( child a , child b ) {
	return a.s > b.s ;
}
bool cmp3 ( child a , child b ) {
	return a.b > b.b ;
}
bool cmp4 ( child a , child b ) {
	return a.i < b.i ;
}
int main () {
	ios::sync_with_stdio(0) ;
	int n ;
	cin >> n ;
	for ( int i = 1 ; i <= n ; i++ ) {
		cin >> kid[i].g >> kid[i].s >> kid[i].b ;
		kid[i].i = i ;
	}
	
	sort ( kid+1 , kid+n+1 , cmp1 ) ;
	for ( int i = 1 ; i <= n ; i ++ ) {
		int j = i ;
		while ( kid[j].g == kid[j-1].g && j != 1 ) j-- ;
		kid[i].num1 = j ;
	}
	
	sort ( kid+1 , kid+n+1 , cmp2 ) ;
	for ( int i = 1 ; i <= n ; i ++ ) {
		int j = i ;
		while ( kid[j].s == kid[j-1].s && j != 1 ) j-- ;
		kid[i].num2 = j ;
	}
	
	sort ( kid+1 , kid+n+1 , cmp3 ) ;
	for ( int i = 1 ; i <= n ; i ++ ) {
		int j = i ;
		while ( kid[j].b == kid[j-1].b && j != 1 ) j-- ;
		kid[i].num3 = j ;
	}
	
	sort ( kid+1 , kid+n+1 , cmp4 ) ;
	for ( int i = 1 ; i <= n ; i ++ ) {
		cout << min ( kid[i].num1 , min ( kid[i].num2 , kid[i].num3 ) ) << endl ;
	}
	return 0 ;
}
2024/10/13 12:15
加载中...