답안 #949325

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
949325 2024-03-19T06:15:23 Z vjudge1 Sirni (COCI17_sirni) C++17
42 / 140
840 ms 786436 KB
//#pragma GCC optimizer("03") ;
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
//using namespace __gnu_pbds;
 
bool YES(bool f){ if(f) cout << "Yes\n" ; else cout << "No\n" ; return f ; }
void YES(){YES(1);}
void NO(){YES(0);}
void fopn(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
//#define ordered_set tree<int, null_type,less_equal<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ios ios_base::sync_with_stdio(0) ; cin.tie(0) ; cout.tie(0);
//#define int unsigned short
#define ld long double
#define pii pair <int , int>
#define all(x) x.begin() , x.end()
#define ff first
#define ss second
#define endl '\n'
 
const int N = 2e5 + 5 ;
const int inf = 1e9 ;
const int mod = 1e9 + 7 ;
const double eps = 1e-8 ;
 
template <class T>
bool chmax( T& x , const T& y ){
  bool f = 0 ;
  if ( x < y ) x = y , f = 1 ;
  return f ;
}
template <class T>
bool chmin( T &x , const T &y ){
  bool f = 0 ;
  if ( x > y ) x = y , f = 1 ;
  return f ;
}
 
//code
 
int n , a[N] , ans , sz[N] , p[N] ;
vector <pair <int , pii>> g ;

int get ( int a ){
	return ( a == p[a] ) ? a : p[a] = get(p[a]) ;
}

void un ( int c , int b ){
	int cost = min(a[c]%a[b],a[b]%a[c]) ;
	c = get(c) ;
	b = get(b) ;
	if ( c != b ){
		if ( sz[c] > sz[b] ) swap (c,b) ;
		sz[b] += sz[c] ;
		p[c] = b ; ans += cost ;
	}
}

void solve(){
	
	cin >> n ;
	for ( int i = 0 ; i < n ; i ++ ) cin >> a[i] ;
	sort ( a , a + n ) ;
	for ( int i = 0 ; i < n ; i ++ ){
		sz[i] = 1 ; p[i] = i ;
		for ( int j = 0 ; j < n ; j ++ ){
			g.push_back({min(a[i]%a[j],a[j]%a[i]),{i,j}}) ;
		} 
	} sort ( all(g) ) ;
	for ( int i = 0 ; i < g.size() ; i ++ ){
		un(g[i].ss.ff,g[i].ss.ss) ;
	} cout << ans ;
}

signed main(){
    ios ;
	int t = 1 ;
	//cin >> t ;
	while ( t -- ) solve() ;
}

Compilation message

sirni.cpp: In function 'void solve()':
sirni.cpp:71:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, std::pair<int, int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   71 |  for ( int i = 0 ; i < g.size() ; i ++ ){
      |                    ~~^~~~~~~~~~
sirni.cpp: In function 'void fopn(std::string)':
sirni.cpp:11:31: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 | void fopn(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
      |                        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sirni.cpp:11:72: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 | void fopn(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
      |                                                                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 89 ms 15216 KB Output is correct
2 Correct 110 ms 15560 KB Output is correct
3 Correct 95 ms 15548 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 105 ms 15300 KB Output is correct
2 Correct 124 ms 15816 KB Output is correct
3 Correct 99 ms 16584 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 96 ms 15724 KB Output is correct
2 Correct 76 ms 16312 KB Output is correct
3 Correct 102 ms 15044 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 840 ms 786436 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 628 ms 786432 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 770 ms 786436 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 639 ms 786432 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 743 ms 786432 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 667 ms 786432 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 638 ms 786432 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -