#include<bits/stdc++.h> usingnamespacestd ; intgcd( int x , int y ) { if( y == 0 ) return x ; else return gcd( y , x % y ) ; }
intmain() { freopen("fence9.in","r",stdin); freopen("fence9.out","w",stdout); int n , m , p ; cin >> n >> m >> p ; // (扩展)欧几里得定理 int edge1 = gcd(n,m) ; int edge2 = gcd(abs(p-n),m); int edge3 = gcd(p,0); int area = p * m / 2 ; // 匹克定理: 2S = 2a + b - 2 , a为多边形内部点数,b为边界上的点数,S为面积 int ans = area - (edge1+edge2+edge3)/2 + 1 ; cout << ans << endl ; return0; }
intmain() { freopen("rockers.in","r",stdin); freopen("rockers.out","w",stdout); int n , t , m ; cin >> n >> t >> m ; for( int i = 1 ; i <= n ;i++) cin >> a[i] ;
for( int i = 1 ; i <= n ; i++) for( int j = m ; j >= 1 ; j-- ) for( int k = t ; k >= a[i] ; k--) { dp[j][k] = max( { dp[j][k] , dp[j-1][t] + 1 , dp[j][ k-a[i] ] + 1 } ); } cout << dp[m][t] << endl ; return0 ; }