Submission #892354

# Submission time Handle Problem Language Result Execution time Memory
892354 2023-12-25T08:53:24 Z thunopro Ants and Sugar (JOI22_sugar) C++14
0 / 100
37 ms 8932 KB
#include<bits/stdc++.h>
using namespace std ;
#define maxn 200009 
#define ll long long
#define fi first 
#define se second 
#define pb push_back 
#define left id<<1
#define right id<<1|1 
#define re exit(0); 

const int mod = 1e9+7 ; 
const int INF = 1e9 ; 
const int LOG = 18 ; 

typedef vector<int> vi ; 
typedef vector<ll> vl ; 
typedef pair<int,int> pii ; 
typedef vector<pii> vii ; 
typedef pair<ll,ll> pll ; 
typedef vector<pll> vll ;  

void add ( int &a , int b ) 
{
	a += b ; 
	if ( a < 0 ) a += mod ; 
	if ( a >= mod ) a -= mod ; 
}

template < typename T > void chkmin (T &a , T b) { if (a>b) a=b ;} 
template < typename T > void chkmax (T &a , T b) { if (a<b) a=b ;}

void rf () 
{
	freopen ("bai1.inp","r",stdin) ; 
//	freopen ("bai1.out","w",stdout) ; 
}

int _pow ( int a , int n ) 
{
	if ( n == 0 ) return 1 ; 
	int res = _pow(a,n/2) ;
	if ( n % 2 ) return (1ll*res*res%mod*a%mod) ; 
	else return 1ll*res*res%mod ; 
}

int n , d ; 


struct shape {
	int op , pos , w ; 
} q [maxn] ;
map <int,ll> cnt_ant , cnt_sugar ; 

void solve_for_sub1 () 
{
	vll ant , sugar ; 
	
	for ( auto x : cnt_ant ) ant . pb ({x.fi,x.se}) ; 
	for ( auto x : cnt_sugar ) sugar . pb ({x.fi,x.se}) ; 
	
	int j = 0 ;
	ll res = 0 ;  
	for ( auto x : ant )
	{
		while ( j < sugar.size () && sugar[j].fi < x.fi - d ) j ++ ; 
		ll num_ant = x.se ; 
		while ( true ) 
		{
			if ( j < sugar.size () && abs (sugar[j].fi-x.fi) <= d ) 
			{
				ll dame = min (num_ant,sugar[j].se) ;
				res += dame ;  
				num_ant -= dame, sugar[j].se -= dame ; 
				if ( !num_ant ) break ;
				else j ++ ; 
			}
			else break ; 
		}
	}
	cout << res << "\n" ; 
}

void sub1 () 
{
	for ( int r = 1 ; r <= n ; r ++ ) 
	{
		int op = q[r].op , pos = q[r].pos , w = q[r].w ; 
		if ( op == 1 ) cnt_ant [pos] += w ; 
		else cnt_sugar [pos] += w ; 
		solve_for_sub1 () ; 
	}
	
}
int main () 
{
	ios_base::sync_with_stdio(0) ; 
	cin.tie(0) ; cout.tie(0) ; 
//	rf () ; 
	cin >> n >> d ; 
	
	for ( int i = 1 ; i <= n ; i ++ ) cin >> q[i].op >> q[i].pos >> q[i].w ;
	
	if ( n <= 1000 ) sub1 () ; 
}

Compilation message

sugar.cpp: In function 'void solve_for_sub1()':
sugar.cpp:66:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   66 |   while ( j < sugar.size () && sugar[j].fi < x.fi - d ) j ++ ;
      |           ~~^~~~~~~~~~~~~~~
sugar.cpp:70:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   70 |    if ( j < sugar.size () && abs (sugar[j].fi-x.fi) <= d )
      |         ~~^~~~~~~~~~~~~~~
sugar.cpp: In function 'void rf()':
sugar.cpp:35:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   35 |  freopen ("bai1.inp","r",stdin) ;
      |  ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Incorrect 1 ms 348 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Runtime error 37 ms 8932 KB Execution killed with signal 11
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 36 ms 6492 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Incorrect 1 ms 348 KB Output isn't correct
7 Halted 0 ms 0 KB -