#include#include const int N = 100005;char s[N];int main() { bool f = 0; int size = 0; char ch; while(scanf("%c", &ch)!=EOF) { if( !(ch >= 'a' && ch <='z') && !(ch >='A' && ch <= 'Z')) { if(size <= 2) { s[size] = '\0'; printf("%s", s); } else { printf("%c%d%c", s[0], size-2, s[size-1]); } size = 0; printf("%c", ch); } else { s[size++] = ch; } } return 0;}
#include#include #include #include #include using namespace std;typedef long long ll;int Rand(int l,int r){ int ans = rand()%r+1; while(ans 0) { cin >> n >> m;// n = Rand(1,6000000), m = Rand(0,10000); if(m == 0) { if(n == 1) puts("0"); else puts("-1"); continue; } if(m >= n) { puts("-1"); }else { ll d = 2 * (n-m) - 1; ll ans = -1; ans = 2 * m - n;// shu if(ans < 0) ans = -1; if(n==m+1)ans = 0; // heng for(ll i = 1; i * i <= d; i += 2) { if( d % i == 0 ) { ll a = (i + 1) / 2; ll b = (d / i - 1) / 2; ll c = m - a - b; if(c < 0) continue; if(ans == -1 || ans>c ){ // printf("%I64d %I64d %I64d %I64d\n", d, a, b, c); ans = c; } } } cout< <
#include#include #include #include #include
import java.io.*;import java.math.BigDecimal;import java.math.BigInteger;import java.math.RoundingMode;import java.util.Scanner;public class Main { BigInteger gcd(BigInteger a, BigInteger b) { BigInteger tmp; while(a.equals(BigInteger.ZERO)==false){ b = b.mod(a); tmp = b; b = a; a = tmp; } return b; } public void work() { int n, m, a, b, x; BigInteger[][] d = new BigInteger[55][55]; BigInteger up, down, v; while (cin.hasNext()) { n = cin.nextInt(); m = cin.nextInt(); a = cin.nextInt(); b = cin.nextInt(); v = BigInteger.valueOf(b - a + 1); for (int i = 0; i <= n; ++i) for (int j = 0; j <= m; ++j) d[i][j] = BigInteger.ZERO; d[0][0] = BigInteger.ONE; for (int i = 0; i < n; ++i) { x = cin.nextInt(); for (int j = 0; j <= m; ++j) if (d[i][j].compareTo(BigInteger.ZERO) > 0) for (int z = a; z <= b; ++z) if (Math.abs(x - z) + j <= m) { d[i + 1][Math.abs(x - z) + j] = d[i + 1][Math .abs(x - z) + j].add(d[i][j]); } } up = BigInteger.ZERO; for (int i = 0; i <= m; ++i) up = up.add(d[n][i]); down = BigInteger.ONE; for (int i = 1; i <= n; ++i) down = down.multiply(v); v = gcd(up, down); up = up.divide(v); down = down.divide(v); out.println(up + "/" + down); } out.close(); } Main() { cin = new Scanner(System.in); out = new PrintWriter(System.out); } public static void main(String[] args) { Main e = new Main(); e.work(); } public Scanner cin; public PrintWriter out;}
#include#include #include #include using namespace std;#define eps (1e-8)const int N = 100005;bool Is0(double x){ return (x>0?x:-x) =m)break; // last.put(); double t = dis(last, a[i]); if(t
版权声明:本文博主原创文章。博客,未经同意不得转载。