Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- void changeDivz(int nr)
- {
- long long unsigned int copy = divz;
- while(copy % 2 == 0)
- {
- nr /=2;
- copy /=2;
- }
- while(nr % 2 == 0)
- {
- divz *= 2;
- nr /=2;
- }
- int n_c = nr;
- for(int i = 3;i<=n_c/2;i+=2)
- {
- while(nr % i == 0 && copy % i == 0)
- {
- nr /= i;
- copy /=i;
- }
- while(nr % i == 0)
- {
- nr /=i;
- divz *= i;
- }
- }
- if(copy % nr != 0)
- divz *= nr;
- }
- long long unsigned int divz = 1;
- int main()
- {
- std::ifstream in("alune.in");
- std::ofstream out("alune.out");
- int c,d,chip,dale;
- unsigned int min = -1;
- in >> c >> d;
- for(int i = 0;i<c;++i)
- {
- in >> chip;
- if(chip < min)min = chip;
- if(divz % chip!= 0 && divz < 2000000000)
- changeDivz(chip);
- }
- if(divz < 2000000000)
- {
- for(int i = 0;i<d;++i)
- {
- in >> dale;
- if(dale % divz < min)
- out << 1;
- else out << 0;
- }
- }
- else
- {
- for(int i = 0;i<d;++i)
- {
- in >> dale;
- if(dale < min)
- out << 1;
- else out << 0;
- }
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment