Example #1
0
File: J.cpp Project: Fengdalu/ICPC
bool dfs(int p)
{
    if(p == len) return true;
    int x;
    x = s[p]- '0';
    if(x <= n && !vis[x])
    {
        f.PB(x);
        vis[x] = true;
        if(dfs(p + 1)) return true;
        f.pop_back();
        vis[x] = false;
    }
    if(p + 1 < len)
    {
        x = (s[p] - '0') * 10 + s[p + 1] - '0';
        if(x <= n && !vis[x])
        {
            f.PB(x);
            vis[x] = true;
            if(dfs(p + 2)) return true;
            f.pop_back();
            vis[x] = false;
        }
    }
    return false;
}
Example #2
0
int main(){
	int n,d,m,s;
	cin >> n >> d;
	for(int i=0;i<n;i++){
		scanf("%d %d",&m,&s);
		a[i]=MP(m,s);
	}
	int l=0,r=0;
	long long f = 0, mx = 0;
	sort(a,a+n);
	q.PB(a[0]);
	int j=0;
	while(a[0].F+d > a[r].F && r<n){
		q.PB(a[r]);
		f += a[r].S;
		r++;
	}
	while(r<n){
		if(mx < f)
			mx = f;
		q.pop_front();
		f -= a[l].S;
		l++;
		while(a[l].F+d>a[r].F && r<n){
			q.PB(a[r]);
			f += a[r].S;
			r++;
		}
	}
	if(mx < f)
		mx = f;
	cout << mx << endl;

	return 0;
}
void splitInput( ) {
  p = 0;
  row = col = 1;
  ignoreGarbage( );
  while( program[ p ] != '\0' ) {
    Token nxtToken = nextToken( );
    if( !aborted ) tokens.PB( nxtToken );
    else break;
    ignoreGarbage( );
  }
}
Example #4
0
File: c.cpp Project: mayf3/acm_code
int main(){
	freopen("huffman.in", "r", stdin);
	freopen("huffman.out", "w", stdout);
	while(~scanf("%d", &n)){
		p.clear();
		q.clear();
		rep(i, n){
			LL x;
			scanf("%I64d", &x);
			p.PB(x);
		}
		LL ret = 0;
		while(p.size() + q.size() > 1){
			LL x, y;
			get_mi(x);
			get_mi(y);
			q.PB(x + y);
			ret += x + y;
		}
		printf("%I64d\n", ret);
	}