Cod sursa(job #502512)

Utilizator juniorOvidiu Rosca junior Data 19 noiembrie 2010 21:13:20
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.18 kb
#include <fstream>
#include <sstream>
#include <cstdlib>

using namespace std;

ifstream fi("secvsir.in");
ofstream fo("secvsir.out");
bool p[501];
string s, si, sa, sb;
//stringstream ssi;
int n, i, nc, a, b;
int ps, pc;

int main () {
  fi >> n;
  if (n == 1) {
    fo << 1;
    return 0;
  }
  if (n == 2) {
    fo << 12;
    return 0;
  }
  s = "12"; p[12] = true;
  for (i = 3; i <= n; i++)
    if (not p[i]) {
      //ssi.seekp(ios_base::beg);
      //ps = ssi.tellp(); // pozitia de scriere
      stringstream ssi("");
      ssi << i;
      //ps = ssi.tellp(); // pozitia de scriere
      //ssi.seekg(ios_base::beg);
      //pc = ssi.tellg(); // pozitia de citire
      ssi >> si;
      //delete ssi;
      //pc = ssi.tellg(); // pozitia de citire
      s += si; nc = s.length();
      if (i <= 99) {
        sa = s.substr(nc-3,2); sb = s.substr(nc-3,3);
      }
      else {
        sa = s.substr(nc-5,3); sb = s.substr(nc-4,3);
      }
      a = atoi(sa.c_str()); b = atoi(sb.c_str());
      p[a] = p[b] = p[i] = true;
    }
  fo << s << '\n';
  return 0;
}

//4748
// --
//4748 i
//  --
//4748
// ---
//
//127128
// ---
//127128
//  ---