AOJ 0113 - Period

書くだけ.汚いです.

#include <iostream>
#include <vector>
#include <algorithm>

typedef std::pair<int, int> P;

int main(){
	int a = 0, b = 0;
	while(std::cin >> a >> b, !std::cin.eof()){
		std::vector<P> v;
		while(a%b){
			a *= 10;

			if(std::find(v.begin(), v.end(), P(a%b, a/b)) != v.end())break;
			v.push_back(P(a%b, a/b));
			a %= b;
		}
		int first = std::find(v.begin(), v.end(), P(a%b, a/b)) - v.begin();

		for(int i=0;i<v.size();i++){
			std::cout << v[i].second;
		}std::cout << std::endl;

		if(a%b == 0)continue;
		for(int i=0;i<v.size();i++){
			if(i >= first)
				std::cout << "^";
			else
				std::cout << " ";
		}std::cout << std::endl;
	}
}